Esempio n. 1
0
        public CachedChunk(WorldServer world, Vector3i position, BinaryReader reader) : this(world, position)
        {
            Min = new Vector3i(reader.ReadInt32(), reader.ReadInt32(), reader.ReadInt32());
            Max = new Vector3i(reader.ReadInt32(), reader.ReadInt32(), reader.ReadInt32());

            for (var x = Min.X; x <= Max.X; x++)
            {
                for (var y = Min.Y; y <= Max.Y; y++)
                {
                    for (var z = Min.Z; z <= Max.Z; z++)
                    {
                        BlockIds[x, y, z]    = reader.ReadUInt16();
                        LightLevels[x, y, z] = LightLevel.FromBinary(reader.ReadUInt16());
                    }
                }
            }

            var blockDataCount = reader.ReadInt32();

            for (var i = 0; i < blockDataCount; i++)
            {
                var blockDataPos = Vector3iChunk.FromBinary(reader.ReadUInt16());
                var blockData    = BlockData.ReadFromStream(reader);

                BlockDatas.Add(blockDataPos, blockData);
            }
        }
Esempio n. 2
0
        public Chunk(WorldServer world, Vector3i position)
        {
            World    = world;
            Position = position;

            Time = DateTime.Now;
        }
Esempio n. 3
0
 public CachedChunk(WorldServer world, Vector3i position)
 {
     World    = world;
     Position = position;
 }