From 4ea3fdae4cd23654b730cc12e9fbaeac415f8e8a Mon Sep 17 00:00:00 2001 From: Dylan Wilson Date: Fri, 25 Sep 2015 08:20:23 +1000 Subject: [PATCH] started fixing relative path issues with bitmap fonts --- .../BitmapFonts/BitmapFontReader.cs | 13 ++++++- Source/Sandbox/Content/Content.mgcb | 35 +++++++++--------- .../Content/{ => Fonts}/courier-new-32.fnt | 0 .../Content/{ => Fonts}/courier-new-32_0.png | Bin Source/Sandbox/Sandbox.csproj | 4 +- Source/Sandbox/SandboxGame.cs | 2 +- 6 files changed, 32 insertions(+), 22 deletions(-) rename Source/Sandbox/Content/{ => Fonts}/courier-new-32.fnt (100%) rename Source/Sandbox/Content/{ => Fonts}/courier-new-32_0.png (100%) diff --git a/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs b/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs index 3175c206..170b0017 100644 --- a/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs +++ b/Source/MonoGame.Extended/BitmapFonts/BitmapFontReader.cs @@ -10,6 +10,7 @@ namespace MonoGame.Extended.BitmapFonts { protected override BitmapFont Read(ContentReader reader, BitmapFont existingInstance) { + var relativeAssetFolder = GetRelativeAssetFolder(reader.AssetName); var textureAssetCount = reader.ReadInt32(); var assets = new List(); @@ -20,7 +21,7 @@ namespace MonoGame.Extended.BitmapFonts } var textures = assets - .Select(i => reader.ContentManager.Load(i)) + .Select(assetName => reader.ContentManager.Load(relativeAssetFolder + assetName)) .ToArray(); var lineHeight = reader.ReadInt32(); @@ -44,5 +45,15 @@ namespace MonoGame.Extended.BitmapFonts return new BitmapFont(regions, lineHeight); } + + private string GetRelativeAssetFolder(string assetPath) + { + var pathNodes = assetPath.Split(new[] {'\\', '/'}); + + if (pathNodes.Length > 1) + return string.Join("/", pathNodes.Take(pathNodes.Length - 1).ToArray()) + "/"; + + return string.Empty; + } } } \ No newline at end of file diff --git a/Source/Sandbox/Content/Content.mgcb b/Source/Sandbox/Content/Content.mgcb index d144fc1a..fdfb056d 100644 --- a/Source/Sandbox/Content/Content.mgcb +++ b/Source/Sandbox/Content/Content.mgcb @@ -6,7 +6,6 @@ /platform:Windows /config: /profile:Reach -/compress:False #-------------------------------- References --------------------------------# @@ -26,23 +25,6 @@ /processorParam:TextureFormat=Color /build:hills.png -#begin courier-new-32.fnt -/importer:BitmapFontImporter -/processor:BitmapFontProcessor -/build:courier-new-32.fnt - -#begin courier-new-32_0.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:MakeSquare=False -/processorParam:TextureFormat=Color -/build:courier-new-32_0.png - #begin desert.tmx /copy:desert.tmx @@ -158,3 +140,20 @@ /processorParam:TextureFormat=Color /build:zombie.png +#begin Fonts/courier-new-32.fnt +/importer:BitmapFontImporter +/processor:BitmapFontProcessor +/build:Fonts/courier-new-32.fnt + +#begin Fonts/courier-new-32_0.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Fonts/courier-new-32_0.png + diff --git a/Source/Sandbox/Content/courier-new-32.fnt b/Source/Sandbox/Content/Fonts/courier-new-32.fnt similarity index 100% rename from Source/Sandbox/Content/courier-new-32.fnt rename to Source/Sandbox/Content/Fonts/courier-new-32.fnt diff --git a/Source/Sandbox/Content/courier-new-32_0.png b/Source/Sandbox/Content/Fonts/courier-new-32_0.png similarity index 100% rename from Source/Sandbox/Content/courier-new-32_0.png rename to Source/Sandbox/Content/Fonts/courier-new-32_0.png diff --git a/Source/Sandbox/Sandbox.csproj b/Source/Sandbox/Sandbox.csproj index 88557d6d..0dea1149 100644 --- a/Source/Sandbox/Sandbox.csproj +++ b/Source/Sandbox/Sandbox.csproj @@ -51,14 +51,14 @@ - + - + diff --git a/Source/Sandbox/SandboxGame.cs b/Source/Sandbox/SandboxGame.cs index f2a63154..a0c9e749 100644 --- a/Source/Sandbox/SandboxGame.cs +++ b/Source/Sandbox/SandboxGame.cs @@ -70,7 +70,7 @@ namespace Sandbox protected override void LoadContent() { _spriteBatch = new SpriteBatch(GraphicsDevice); - _bitmapFont = Content.Load("courier-new-32"); + _bitmapFont = Content.Load("Fonts/courier-new-32"); _tiledMap = Content.Load("level01"); var fireballTexture = Content.Load("fireball");