MineFrog.Player.GZip C# (CSharp) Method

GZip() public static method

public static GZip ( byte mapSize, byte levelData ) : byte[]
mapSize byte
levelData byte
return byte[]
        public static byte[] GZip(byte[] mapSize, byte[] levelData)
        {
            var ms = new MemoryStream();
            var gs = new GZipStream(ms, CompressionMode.Compress, true);
            gs.Write(mapSize, 0, mapSize.Length);
            //gs.Write(levelData, 0, levelData.Length);

            int currentstart = 0;

            for (int i = 0; i < levelData.Length; i++ )
            {
                byte block = levelData[i];
                if(block>49)
                {
                    if(i>0) gs.Write(levelData, currentstart, (i-currentstart));
                    currentstart = i + 1;

                    gs.WriteByte((Block.Blocks.ContainsKey(block) ? Block.Blocks[block].BaseType : (byte)0));
                }

            }

            if (currentstart != levelData.Length)
            {
                gs.Write(levelData, currentstart, (levelData.Length - currentstart));
            }

            gs.Flush();
            gs.Dispose();

            ms.Position = 0;
            var bytes = new byte[ms.Length];
            ms.Read(bytes, 0, (int) ms.Length);
            ms.Close();
            ms.Dispose();
            return bytes;
        }