public void ReadPacket(IMcStream stream)
        {
            ChunkX = stream.ReadInt32();
            ChunkZ = stream.ReadInt32();
            var length = stream.ReadInt16();

            Coordinates = new Coordinates3D[length];
            for (var i = 0; i < length; i++)
            {
                var value = stream.ReadUInt16();
                Coordinates[i] = new Coordinates3D(
                    (value >> 12) & 0xF,
                    value & 0xFF,
                    (value >> 8) & 0xF);
            }

            BlockIDs = stream.ReadInt8Array(length);
            Metadata = stream.ReadInt8Array(length);
        }