Skip to content

Commit

Permalink
fix tileset loading
Browse files Browse the repository at this point in the history
  • Loading branch information
Ragath authored and Ragath committed Jan 15, 2023
1 parent ffbe63e commit 75daee1
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
25 changes: 12 additions & 13 deletions TiledLib.Pipeline/TiledMapImporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,23 @@
using System.Linq;
using Microsoft.Xna.Framework.Content.Pipeline;

namespace TiledLib.Pipeline
namespace TiledLib.Pipeline;

[ContentImporter(new[] { ".tmx", ".json" }, CacheImportedData = false, DisplayName = "Tiled Map Importer", DefaultProcessor = "PassThroughProcessor")]
public class TiledMapImporter : ContentImporter<Map>
{
[ContentImporter(new[] { ".tmx", ".json" }, CacheImportedData = false, DisplayName = "Tiled Map Importer", DefaultProcessor = "PassThroughProcessor")]
public class TiledMapImporter : ContentImporter<Map>
public override Map Import(string filename, ContentImporterContext context)
{
public override Map Import(string filename, ContentImporterContext context)
{
string GetPath(string path) => Path.IsPathRooted(path) ? path : Path.Combine(Path.GetDirectoryName(filename), path);
string GetPath(string path) => Path.IsPathRooted(path) ? path : Path.Combine(Path.GetDirectoryName(filename), path);

using (var stream = File.OpenRead(filename))
{
var map = Map.FromStream(stream, ts => File.OpenRead(GetPath(ts.Source)));
using (var stream = File.OpenRead(filename))
{
var map = Map.FromStream(stream, ts => File.OpenRead(GetPath(ts.Source)));

foreach (var ts in map.Tilesets.OfType<ExternalTileset>())
ts.LoadTileset();
foreach (var ts in map.Tilesets.OfType<ExternalTileset>())
ts.LoadTileset();

return map;
}
return map;
}
}
}
2 changes: 1 addition & 1 deletion TiledLib/Tileset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public Tile this[int gid]
public static Tileset FromStream(Stream stream)
{
if (Utils.ContainsJson(stream))
return JsonSerializer.Deserialize<Tileset>(stream);
return JsonSerializer.Deserialize<Tileset>(stream, new JsonSerializerOptions(JsonSerializerDefaults.Web));
else
return (Tileset)new XmlSerializer(typeof(Tileset)).Deserialize(stream);

Expand Down

0 comments on commit 75daee1

Please sign in to comment.