From 214e960ebc0171b764bbb12cf0dc102d61f9d1ac Mon Sep 17 00:00:00 2001 From: Shaun McFall Date: Wed, 8 Sep 2021 21:13:58 -0400 Subject: [PATCH] Resolve relative path of texture in TextureAtlasJsonConverter --- .../TextureAtlases/TextureAtlasJsonConverter.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/cs/MonoGame.Extended/TextureAtlases/TextureAtlasJsonConverter.cs b/src/cs/MonoGame.Extended/TextureAtlases/TextureAtlasJsonConverter.cs index 3acebc75..d9b67d6d 100644 --- a/src/cs/MonoGame.Extended/TextureAtlases/TextureAtlasJsonConverter.cs +++ b/src/cs/MonoGame.Extended/TextureAtlases/TextureAtlasJsonConverter.cs @@ -48,12 +48,14 @@ namespace MonoGame.Extended.TextureAtlases // TODO: When we get to .NET Standard 2.1 it would be more robust to use // [Path.GetRelativePath](https://docs.microsoft.com/en-us/dotnet/api/system.io.path.getrelativepath?view=netstandard-2.1) + var textureName = Path.GetFileNameWithoutExtension(metadata.Texture); + var textureDirectory = Path.GetDirectoryName(metadata.Texture); var directory = Path.GetDirectoryName(_path); - var relativeAssetName = Path.Combine(directory, metadata.Texture); - var assetName = Path.Combine(directory, Path.GetFileNameWithoutExtension(relativeAssetName)); - var texture = _contentManager.Load(assetName); + var relativePath = Path.Combine(_contentManager.RootDirectory, directory, textureDirectory, textureName); + var resolvedAssetName = Path.GetFullPath(relativePath); + var texture = _contentManager.Load(resolvedAssetName); - return TextureAtlas.Create(assetName, texture, metadata.RegionWidth, metadata.RegionHeight); + return TextureAtlas.Create(resolvedAssetName, texture, metadata.RegionWidth, metadata.RegionHeight); } } @@ -68,4 +70,4 @@ namespace MonoGame.Extended.TextureAtlases return objectType == typeof(TextureAtlas); } } -} \ No newline at end of file +}