Пример #1
0
        void MapChunk(Map m)
        {
            // TODO: investigate how Substrate uses Zlib to compress chunks to files

            byte[] chunkdata = m.GetCompressedData(m.Spawn.X, m.Spawn.Y, m.Spawn.Z, 15, 127, 15);
            byte[] buffer = new byte[18 + chunkdata.Length];

            buffer[0] = (byte)PacketID.MapChunk;
            Array.Copy(TypeHandler.GetBytes(m.Spawn.X), 0, buffer, 1, 4);
            Array.Copy(TypeHandler.GetBytes(m.Spawn.Y), 0, buffer, 5, 4);
            buffer[9] = 15;
            buffer[10] = 127;
            buffer[11] = 15;
            Array.Copy(TypeHandler.GetBytes(chunkdata.Length), 0, buffer, 12, 4);
            Array.Copy(chunkdata, 0, buffer, 15, chunkdata.Length);

            // Pray this works
            client.SendRaw(buffer);
        }