	public void neighbourChanged(Tile tile) {
		final Tile w = level.getTile(x - 1, y);
		final Tile n = level.getTile(x, y - 1);
		final Tile s = level.getTile(x, y + 1);
		final Tile e = level.getTile(x + 1, y);
		int index = 0;
		if (w != null && w.castShadow())
			index |= 0x4;
		if (n != null && n.castShadow())
			index |= 0x2;
		if (e != null && e.castShadow())
			index |= 0x1;
		if (n instanceof SandTile) {
			img = 4 + 8;
			index = 0;
		}
		if (s instanceof SandTile) {
			img = 5 + 8;
			index = 0;
		}
		if (index > 0) {
			int imageIndex = shadowImages[index];
			if (imageIndex < 4) 
				img = Art.floorTiles.length + (imageIndex & 3);
			else
				img = 2 * Art.floorTiles.length + (imageIndex & 3);
		}
		minimapColor = Art.floorTileColors[img & 7][img / 8];
	}

	public void neighbourChanged(Tile tile) {
		final Tile w = level.getTile(x - 1, y);
		final Tile n = level.getTile(x, y - 1);
		final Tile s = level.getTile(x, y + 1);
		final Tile e = level.getTile(x + 1, y);
		int index = 0;
		if (w != null && w.castShadow())
			index |= 0x4;
		if (n != null && n.castShadow())
			index |= 0x2;
		if (e != null && e.castShadow())
			index |= 0x1;
		if (n instanceof SandTile) {
			img = 4 + 8;
			index = 0;
		}
		if (s instanceof SandTile) {
			img = 5 + 8;
			index = 0;
		}
		if (index > 0) {
			int imageIndex = shadowImages[index];
			if (imageIndex < 4) 
				img = Art.floorTiles.length + (imageIndex & 3);
			else
				img = 2 * Art.floorTiles.length + (imageIndex & 3);
		} else {
		    img = 3;
		}
		minimapColor = Art.floorTileColors[img & 7][img / 8];
	}
