Ejemplo n.º 1
0
  @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()};
  }
Ejemplo n.º 2
0
  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;
  }