summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/GlobalAssemblyInfo.cs4
-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/Constants.cs2
-rw-r--r--src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs16
-rw-r--r--src/SMAPI/Metadata/CoreAssetPropagator.cs2
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();