Esempio n. 1
0
 public LayerData(string dataString, string encoding, string compression, Layer layer)
 {
     this.dataString = dataString;
     this.encoding = encoding;
     this.compression = compression;
     globalTileID = new int[layer.Width, layer.Height];
     tileRotation = new SpriteEffects[layer.Width, layer.Height];
     ReadAndDecodeDataString(layer);
 }
Esempio n. 2
0
 private Stream GetStream(byte[] data, Layer layer)
 {
     Stream stream;
     switch (compression)
     {
         case "gzip":
             stream = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
             break;
         case "uncompressed":
             stream = new MemoryStream(data);
             break;
         case "zlib":
             stream = new Ionic.Zlib.ZlibStream(new MemoryStream(data), Ionic.Zlib.CompressionMode.Decompress);
             break;
         default:
             throw new UnsupportedCompressionException("Layer \"" + layer + "\" has unsupported compression.");
     }
     return stream;
 }
Esempio n. 3
0
 private void ReadAndDecodeDataString(Layer layer)
 {
     switch (encoding)
     {
         case "base64":
             char[] encodedString = dataString.Trim().ToCharArray();
             byte[] decodedString = Convert.FromBase64CharArray(encodedString, 0, encodedString.Length);
             DecompressAndWriteData(GetStream(decodedString, layer));
             break;
         default:
             throw new UnsupportedEncodingException("Layer \"" + layer + "\" has unsupported encoding.");
     }
 }