private static void ReadBase64TileLayer(TiledTileLayer layer, XElement root) { var compression = root.ReadAttribute("compression", string.Empty); var content = root.Value; using (var unencoded = new MemoryStream(Convert.FromBase64String(content), false)) using (var uncompressed = unencoded.GetDecompressor(compression)) using (var reader = new BinaryReader(uncompressed)) { var tiles = new int[layer.Width * layer.Height]; for (var i = 0; i < layer.Width * layer.Height; i++) { tiles[i] = reader.ReadInt32(); } layer.SetTileData(tiles); } }
private static void ReadBase64TileLayer(TiledTileLayer layer, XElement root) { string compression = root.ReadAttribute<string>("compression", string.Empty); bool canCompress = new[] { "gzip", "zlib", string.Empty }.Contains(compression.ToLower()); string content = root.Value; using (Stream unencoded = new MemoryStream(Convert.FromBase64String(content), false)) using (Stream uncompressed = unencoded.GetDecompressor(compression)) using (BinaryReader reader = new BinaryReader(uncompressed)) { var tiles = new int[layer.Width * layer.Height]; for (int i = 0; i < layer.Width * layer.Height; i++) { tiles[i] = reader.ReadInt32(); } layer.SetTileData(tiles); } }
private static void ReadCsvTileLayer(TiledTileLayer layer, XElement root) { var value = root.Value; if (!String.IsNullOrEmpty(value)) { var parsed = value.Split(',') .Select(s => Int32.Parse(s, NumberStyles.Integer | NumberStyles.AllowTrailingWhite | NumberStyles.AllowLeadingWhite, CultureInfo.InvariantCulture)) .ToArray(); layer.SetTileData(parsed); } }