示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }