public void drawBlock(BlockPoint bp, MouseState ms, boolean update) {
		//CableBattle.stage.draw(g, bp, ms, this);
		
		MapBlock mb = CableBattle.stage.getMapBlock(bp);
		mb.block.draw(gback, bp, ms, this);

		//graphics.drawImage(screenback, 0, 0, null);
		Clip c = mb.mapprops.getActiveArea(bp);
		graphics.drawImage(screenback,
				c.left, c.top, c.right, c.bottom,
				c.left, c.top, c.right, c.bottom,
				null);

		if (!mb.mapprops.range.single()) {
			for (int x2 = bp.x; x2 < bp.x + mb.mapprops.range.w; x2++) {
				for (int y2 = bp.y; y2 < bp.y + mb.mapprops.range.h; y2++) {
					BlockPoint bp2 = new BlockPoint(x2, y2);
					if (bp2.available() && Stage.in(bp2) && !bp2.equals(bp)) {
						MapBlock mb2 = CableBattle.stage.getMapBlock(bp2);
						switch (mb2.getProps().type) {
						case NONE:
						case PIG:
							break;
						default:
							mb2.mapprops.draw(graphics, bp2, MouseState.LEAVE, null);
							break;
						}
					}
				}
			}
		}
		
		mb.mapprops.draw(graphics, bp, ms, this);
		
		if (update) {
			Graphics g = this.getGraphics();
			updateBlock(g, c, bp, ms);
		}
	}