for (int y = end.getFloorY() - 1; y >= start.getFloorY(); y--) {
final double yOffset = (y + 0.5 - target.getY()) / verticalSize;
if (yOffset > -0.7 && xOffset * xOffset + yOffset * yOffset + zOffset * zOffset < 1) {
final int xx = chunk.getFloorX() + x;
final int zz = chunk.getFloorZ() + z;
final BlockMaterial material = blockData.get(xx, y, zz);
if (material.equals(VanillaMaterials.STONE) || material.equals(VanillaMaterials.DIRT)
|| material.equals(VanillaMaterials.GRASS)) {
if (y < 10) {
blockData.set(xx, y, zz, VanillaMaterials.STATIONARY_LAVA);
} else {
if (material.equals(VanillaMaterials.GRASS) && blockData.get(xx, y - 1, zz).equals(VanillaMaterials.DIRT)) {
blockData.set(xx, y - 1, zz, VanillaMaterials.GRASS);
}
blockData.set(xx, y, zz, VanillaMaterials.AIR);
}
}