Merge branch 'develop' into stable

This commit is contained in:
Jesse Plamondon-Willard 2018-12-07 16:40:19 -05:00
commit 13ed6decf5
No known key found for this signature in database
GPG Key ID: 7D7C8097B62033CE
7 changed files with 21 additions and 16 deletions

View File

@ -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")]

View File

@ -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.

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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");

View File

@ -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,15 +81,11 @@ namespace StardewModdingAPI.Framework.StateTracking
}
// detect building changed
foreach (LocationTracker watcher in this.Locations.ToArray())
{
watcher.Update();
if (watcher.BuildingsWatcher.IsChanged)
foreach (LocationTracker watcher in this.Locations.Where(p => p.BuildingsWatcher.IsChanged).ToArray())
{
this.Remove(watcher.BuildingsWatcher.Removed);
this.Add(watcher.BuildingsWatcher.Added);
}
}
// detect building interiors changed (e.g. construction completed)
foreach (KeyValuePair<Building, GameLocation> pair in this.BuildingIndoors.Where(p => !object.Equals(p.Key.indoors.Value, p.Value)))

View File

@ -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();