예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }