Terraria.NetMessage.DecompressTileBlock C# (CSharp) Method

DecompressTileBlock() public static method

public static DecompressTileBlock ( byte buffer, int bufferStart, int bufferLength ) : void
buffer byte
bufferStart int
bufferLength int
return void
        public static void DecompressTileBlock(byte[] buffer, int bufferStart, int bufferLength)
        {
            using (MemoryStream memoryStream1 = new MemoryStream())
            {
                memoryStream1.Write(buffer, bufferStart, bufferLength);
                memoryStream1.Position = 0L;
                MemoryStream memoryStream2;
                if (memoryStream1.ReadByte() != 0)
                {
                    MemoryStream memoryStream3 = new MemoryStream();
                    using (DeflateStream deflateStream = new DeflateStream((Stream)memoryStream1, CompressionMode.Decompress, true))
                    {
                        deflateStream.CopyTo((Stream)memoryStream3);
                        deflateStream.Close();
                    }
                    memoryStream2 = memoryStream3;
                    memoryStream2.Position = 0L;
                }
                else
                {
                    memoryStream2 = memoryStream1;
                    memoryStream2.Position = 1L;
                }
                using (BinaryReader reader = new BinaryReader((Stream)memoryStream2))
                {
                    int xStart = reader.ReadInt32();
                    int yStart = reader.ReadInt32();
                    short num1 = reader.ReadInt16();
                    short num2 = reader.ReadInt16();
                    NetMessage.DecompressTileBlock_Inner(reader, xStart, yStart, (int)num1, (int)num2);
                }
            }
        }