diff options
-rw-r--r-- | build/GlobalAssemblyInfo.cs | 4 | ||||
-rw-r--r-- | docs/release-notes.md | 5 | ||||
-rw-r--r-- | src/SMAPI.Mods.ConsoleCommands/manifest.json | 4 | ||||
-rw-r--r-- | src/SMAPI.Mods.SaveBackup/manifest.json | 4 | ||||
-rw-r--r-- | src/SMAPI/Constants.cs | 2 | ||||
-rw-r--r-- | src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs | 16 | ||||
-rw-r--r-- | src/SMAPI/Metadata/CoreAssetPropagator.cs | 2 |
7 files changed, 21 insertions, 16 deletions
diff --git a/build/GlobalAssemblyInfo.cs b/build/GlobalAssemblyInfo.cs index 207c11c3..c2841c72 100644 --- a/build/GlobalAssemblyInfo.cs +++ b/build/GlobalAssemblyInfo.cs @@ -1,5 +1,5 @@ using System.Reflection; [assembly: AssemblyProduct("SMAPI")] -[assembly: AssemblyVersion("2.9.0")] -[assembly: AssemblyFileVersion("2.9.0")] +[assembly: AssemblyVersion("2.9.1")] +[assembly: AssemblyFileVersion("2.9.1")] diff --git a/docs/release-notes.md b/docs/release-notes.md index cf11df7c..9047ae88 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,4 +1,9 @@ # Release notes +## 2.9.1 +* For players: + * Fixed crash in SMAPI 2.9 when constructing certain buildings. + * Fixed error when a map asset is reloaded in rare cases. + ## 2.9 * For players: * Added support for ModDrop in update checks and the mod compatibility list. diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json index c723d845..fa977039 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": "2.9.0", + "Version": "2.9.1", "Description": "Adds SMAPI console commands that let you manipulate the game.", "UniqueID": "SMAPI.ConsoleCommands", "EntryDll": "ConsoleCommands.dll", - "MinimumApiVersion": "2.9.0" + "MinimumApiVersion": "2.9.1" } diff --git a/src/SMAPI.Mods.SaveBackup/manifest.json b/src/SMAPI.Mods.SaveBackup/manifest.json index b6aa4149..1875adca 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": "2.9.0", + "Version": "2.9.1", "Description": "Automatically backs up all your saves once per day into its folder.", "UniqueID": "SMAPI.SaveBackup", "EntryDll": "SaveBackup.dll", - "MinimumApiVersion": "2.9.0" + "MinimumApiVersion": "2.9.1" } diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs index 6a1cd188..959ab3c7 100644 --- a/src/SMAPI/Constants.cs +++ b/src/SMAPI/Constants.cs @@ -29,7 +29,7 @@ namespace StardewModdingAPI ** Public ****/ /// <summary>SMAPI's current semantic version.</summary> - public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("2.9.0"); + public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("2.9.1"); /// <summary>The minimum supported version of Stardew Valley.</summary> public static ISemanticVersion MinimumGameVersion { get; } = new GameVersion("1.3.32"); diff --git a/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs b/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs index d9d598f8..930a8102 100644 --- a/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs +++ b/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs @@ -62,9 +62,13 @@ namespace StardewModdingAPI.Framework.StateTracking /// <summary>Update the current value if needed.</summary> public void Update() { - // detect added/removed locations + // update watchers this.LocationListWatcher.Update(); this.MineLocationListWatcher.Update(); + foreach (LocationTracker watcher in this.Locations) + watcher.Update(); + + // detect added/removed locations if (this.LocationListWatcher.IsChanged) { this.Remove(this.LocationListWatcher.Removed); @@ -77,14 +81,10 @@ namespace StardewModdingAPI.Framework.StateTracking } // detect building changed - foreach (LocationTracker watcher in this.Locations.ToArray()) + foreach (LocationTracker watcher in this.Locations.Where(p => p.BuildingsWatcher.IsChanged).ToArray()) { - watcher.Update(); - if (watcher.BuildingsWatcher.IsChanged) - { - this.Remove(watcher.BuildingsWatcher.Removed); - this.Add(watcher.BuildingsWatcher.Added); - } + this.Remove(watcher.BuildingsWatcher.Removed); + this.Add(watcher.BuildingsWatcher.Added); } // detect building interiors changed (e.g. construction completed) diff --git a/src/SMAPI/Metadata/CoreAssetPropagator.cs b/src/SMAPI/Metadata/CoreAssetPropagator.cs index d273c251..90629d7f 100644 --- a/src/SMAPI/Metadata/CoreAssetPropagator.cs +++ b/src/SMAPI/Metadata/CoreAssetPropagator.cs @@ -92,7 +92,7 @@ namespace StardewModdingAPI.Metadata bool anyChanged = false; foreach (GameLocation location in this.GetLocations()) { - if (this.GetNormalisedPath(location.mapPath.Value) == key) + if (!string.IsNullOrWhiteSpace(location.mapPath.Value) && this.GetNormalisedPath(location.mapPath.Value) == key) { this.Reflection.GetMethod(location, "reloadMap").Invoke(); this.Reflection.GetMethod(location, "updateWarps").Invoke(); |