diff options
Diffstat (limited to 'src/StardewModdingAPI')
-rw-r--r-- | src/StardewModdingAPI/Framework/ContentHelper.cs | 25 | ||||
-rw-r--r-- | src/StardewModdingAPI/Program.cs | 1 |
2 files changed, 10 insertions, 16 deletions
diff --git a/src/StardewModdingAPI/Framework/ContentHelper.cs b/src/StardewModdingAPI/Framework/ContentHelper.cs index 5a2a8b9b..10240cd1 100644 --- a/src/StardewModdingAPI/Framework/ContentHelper.cs +++ b/src/StardewModdingAPI/Framework/ContentHelper.cs @@ -71,38 +71,37 @@ namespace StardewModdingAPI.Framework // get asset path string assetPath = this.GetModAssetPath(key, file.FullName); + // try cache + if (this.ContentManager.IsLoaded(assetPath)) + return this.ContentManager.Load<T>(assetPath); + // load content switch (file.Extension.ToLower()) { + // XNB file case ".xnb": return this.ContentManager.Load<T>(assetPath); + // unpacked map case ".tbin": // validate if (typeof(T) != typeof(Map)) throw new ContentLoadException($"Can't read file with extension '{file.Extension}' as type '{typeof(T)}'; must be type '{typeof(Map)}'."); - - // try cache - if (this.ContentManager.IsLoaded(assetPath)) - return this.ContentManager.Load<T>(assetPath); // fetch & cache FormatManager formatManager = FormatManager.Instance; Map map = formatManager.LoadMap(file.FullName); - foreach (TileSheet t in map.TileSheets) - t.ImageSource = t.ImageSource.Replace(".png", ""); + foreach (TileSheet tilesheet in map.TileSheets) + tilesheet.ImageSource = tilesheet.ImageSource.Replace(".png", ""); this.ContentManager.Inject(assetPath, map); return (T)(object)map; - + + // unpacked image case ".png": // validate if (typeof(T) != typeof(Texture2D)) throw new ContentLoadException($"Can't read file with extension '{file.Extension}' as type '{typeof(T)}'; must be type '{typeof(Texture2D)}'."); - // try cache - if (this.ContentManager.IsLoaded(assetPath)) - return this.ContentManager.Load<T>(assetPath); - // fetch & cache using (FileStream stream = File.OpenRead(file.FullName)) { @@ -111,10 +110,6 @@ namespace StardewModdingAPI.Framework this.ContentManager.Inject(assetPath, texture); return (T)(object)texture; } - - - - default: throw new ContentLoadException($"Unknown file extension '{file.Extension}'; must be '.xnb' or '.png'."); diff --git a/src/StardewModdingAPI/Program.cs b/src/StardewModdingAPI/Program.cs index b1cfb32d..a22e16a5 100644 --- a/src/StardewModdingAPI/Program.cs +++ b/src/StardewModdingAPI/Program.cs @@ -268,7 +268,6 @@ namespace StardewModdingAPI ** Private methods *********/ /// <summary>Assert that the minimum conditions are present to initialise SMAPI without type load exceptions.</summary> - /// <returns>Returns whether the minimum conditions are met.</returns> private static void AssertMinimumCompatibility() { void PrintErrorAndExit(string message) |