public static Schematic newSchematic(NbtCompound tag) { Schematic s = new Schematic( tag.Get <NbtInt>("sizeX").IntValue, tag.Get <NbtInt>("sizeY").IntValue, tag.Get <NbtInt>("sizeZ").IntValue); s.readFromNbt(tag); return(s); }
public static Schematic newSchematic(Chunk chunk) { Schematic s = new Schematic(Chunk.SIZE, Chunk.SIZE, Chunk.SIZE); for (int i = 0; i < s.totalSize; i++) { Array.Copy(s.blocks, chunk.blocks, s.totalSize); Array.Copy(s.metaData, chunk.metaData, s.totalSize); } return(s); }
public static Schematic newSchematic(World world, BlockPos pos1, BlockPos pos2) { int startX = Mathf.Min(pos1.x, pos2.x); int startY = Mathf.Min(pos1.y, pos2.y); int startZ = Mathf.Min(pos1.z, pos2.z); int endX = Mathf.Max(pos1.x, pos2.x); int endY = Mathf.Max(pos1.y, pos2.y); int endZ = Mathf.Max(pos1.z, pos2.z); Schematic s = new Schematic(endX - startX, endY - startY, endZ - startZ); for (int i = startX; i <= endX; i++) { for (int j = startY; j <= endY; j++) { for (int k = startZ; k <= endZ; k++) { s.setBlock(i - startX, j - startY, k - startZ, world.getBlock(i, j, k)); s.setMeta(i - startX, j - startY, k - startZ, world.getMeta(i, j, k)); } } } return(s); }