summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md5
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/manifest.json4
-rw-r--r--src/SMAPI.Mods.SaveBackup/manifest.json4
-rw-r--r--src/SMAPI.Toolkit/Utilities/PathUtilities.cs6
-rw-r--r--src/SMAPI/Constants.cs2
-rw-r--r--src/SMAPI/Framework/ContentManagers/ModContentManager.cs15
6 files changed, 25 insertions, 11 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 26515b61..cf084856 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -1,6 +1,11 @@
← [README](README.md)
# Release notes
+## 3.3.1
+Released 22 February 2020 for Stardew Valley 1.4.1 or later.
+
+* Fixed errors with custom spouse room mods in SMAPI 3.3.
+
## 3.3
Released 22 February 2020 for Stardew Valley 1.4.1 or later.
diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json
index 971c591a..04f0c059 100644
--- a/src/SMAPI.Mods.ConsoleCommands/manifest.json
+++ b/src/SMAPI.Mods.ConsoleCommands/manifest.json
@@ -1,9 +1,9 @@
{
"Name": "Console Commands",
"Author": "SMAPI",
- "Version": "3.3.0",
+ "Version": "3.3.1",
"Description": "Adds SMAPI console commands that let you manipulate the game.",
"UniqueID": "SMAPI.ConsoleCommands",
"EntryDll": "ConsoleCommands.dll",
- "MinimumApiVersion": "3.3.0"
+ "MinimumApiVersion": "3.3.1"
}
diff --git a/src/SMAPI.Mods.SaveBackup/manifest.json b/src/SMAPI.Mods.SaveBackup/manifest.json
index 4559d1b0..75b97566 100644
--- a/src/SMAPI.Mods.SaveBackup/manifest.json
+++ b/src/SMAPI.Mods.SaveBackup/manifest.json
@@ -1,9 +1,9 @@
{
"Name": "Save Backup",
"Author": "SMAPI",
- "Version": "3.3.0",
+ "Version": "3.3.1",
"Description": "Automatically backs up all your saves once per day into its folder.",
"UniqueID": "SMAPI.SaveBackup",
"EntryDll": "SaveBackup.dll",
- "MinimumApiVersion": "3.3.0"
+ "MinimumApiVersion": "3.3.1"
}
diff --git a/src/SMAPI.Toolkit/Utilities/PathUtilities.cs b/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
index 40a59d87..e9d71747 100644
--- a/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
+++ b/src/SMAPI.Toolkit/Utilities/PathUtilities.cs
@@ -10,13 +10,13 @@ namespace StardewModdingAPI.Toolkit.Utilities
public static class PathUtilities
{
/*********
- ** Fields
+ ** Accessors
*********/
/// <summary>The possible directory separator characters in a file path.</summary>
- private static readonly char[] PossiblePathSeparators = new[] { '/', '\\', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }.Distinct().ToArray();
+ public static readonly char[] PossiblePathSeparators = new[] { '/', '\\', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }.Distinct().ToArray();
/// <summary>The preferred directory separator character in an asset key.</summary>
- private static readonly string PreferredPathSeparator = Path.DirectorySeparatorChar.ToString();
+ public static readonly string PreferredPathSeparator = Path.DirectorySeparatorChar.ToString();
/*********
diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs
index 670dc494..e71b21b1 100644
--- a/src/SMAPI/Constants.cs
+++ b/src/SMAPI/Constants.cs
@@ -20,7 +20,7 @@ namespace StardewModdingAPI
** Public
****/
/// <summary>SMAPI's current semantic version.</summary>
- public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.3.0");
+ public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.3.1");
/// <summary>The minimum supported version of Stardew Valley.</summary>
public static ISemanticVersion MinimumGameVersion { get; } = new GameVersion("1.4.1");
diff --git a/src/SMAPI/Framework/ContentManagers/ModContentManager.cs b/src/SMAPI/Framework/ContentManagers/ModContentManager.cs
index 7d274eb7..4ffe3acd 100644
--- a/src/SMAPI/Framework/ContentManagers/ModContentManager.cs
+++ b/src/SMAPI/Framework/ContentManagers/ModContentManager.cs
@@ -367,14 +367,23 @@ namespace StardewModdingAPI.Framework.ContentManagers
}
// get from game assets
+ // Map tilesheet keys shouldn't include the "Maps/" prefix (the game will add it automatically) or ".png" extension.
{
- string contentKey = Path.Combine("Maps", relativePath);
- if (contentKey.EndsWith(".png"))
+ string contentKey = relativePath;
+ foreach (char separator in PathUtilities.PossiblePathSeparators)
+ {
+ if (contentKey.StartsWith($"Maps{separator}"))
+ {
+ contentKey = contentKey.Substring(5);
+ break;
+ }
+ }
+ if (contentKey.EndsWith(".png", StringComparison.InvariantCultureIgnoreCase))
contentKey = contentKey.Substring(0, contentKey.Length - 4);
try
{
- this.GameContentManager.Load<Texture2D>(contentKey, this.Language, useCache: true); // no need to bypass cache here, since we're not storing the asset
+ this.GameContentManager.Load<Texture2D>(Path.Combine("Maps", contentKey), this.Language, useCache: true); // no need to bypass cache here, since we're not storing the asset
assetName = contentKey;
return true;
}