@Override public double[] fetchBounds(final int x, final int y, final int z) { // TODO: change api for this / use nodes (!) final int id = getTypeId(x, y, z); final net.minecraft.server.v1_7_R1.Block block = net.minecraft.server.v1_7_R1.Block.e(id); if (block == null) return null; block.updateShape(this, x, y, z); // TODO: use THIS instead of world. // minX, minY, minZ, maxX, maxY, maxZ return new double[] {block.x(), block.z(), block.B(), block.y(), block.A(), block.C()}; }
public static List getBlockBBsInBB(World world, AxisAlignedBB axisalignedbb) { UnsafeList unsafeList = new UnsafeList(); int minX = MathHelper.floor(axisalignedbb.a); int maxX = MathHelper.floor(axisalignedbb.d + 1.0D); int minY = MathHelper.floor(axisalignedbb.b); int maxY = MathHelper.floor(axisalignedbb.e + 1.0D); int minZ = MathHelper.floor(axisalignedbb.c); int maxZ = MathHelper.floor(axisalignedbb.f + 1.0D); for (int x = minX; x < maxX; x++) { for (int z = minZ; z < maxZ; z++) { if (world.isChunkLoaded(x, z)) { for (int y = minY - 1; y < maxY; y++) { Block block = Block.e(world.getBlockAt(x, y, z).getTypeId()); if (block != null) { block.a(((CraftWorld) world).getHandle(), x, y, z, axisalignedbb, unsafeList, null); } } } } } return unsafeList; }