public override ProtobufPacket Handle(ChunkDataPacket packet)
        {
            var metadata = new ChunkColumnMetadata
            {
                Coordinates   = new Coordinates2D(packet.ChunkX, packet.ChunkZ),
                PrimaryBitMap = packet.PrimaryBitmap
            };

            Context.ClientReceiveEvent(new ChunkEvent(ChunkExtra.ReadChunk(true, packet.GroundUpContinuous, metadata,
                                                                           new ZInputStream(new MemoryStream(packet.CompressedData)).ReadFully())));

            return(null);
        }
        private static ChunkColumnMetadata[] ReadChunkColumnMetadataArray(PacketDataReader reader, int length = 0)
        {
            if (length == 0)
            {
                length = reader.Read <VarInt>();
            }

            var array = new ChunkColumnMetadata[length];

            for (var i = 0; i < length; i++)
            {
                array[i] = new ChunkColumnMetadata
                {
                    Coordinates   = new Coordinates2D(reader.Read <int>(), reader.Read <int>()),
                    PrimaryBitMap = reader.Read <ushort>(),
                    AddBitMap     = reader.Read <ushort>()
                };
            }

            return(array);
        }