diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-09-21 18:25:33 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-09-21 18:25:33 -0400 |
commit | 99e4a4a1ccf5dcbe0e4b1af7591e229a0eeae447 (patch) | |
tree | 8d92bfa14133973c9da36cab6ebaccc170cf4204 /src/SMAPI/Framework | |
parent | 7f47271be42a8017d48b8378600f2f17ccd38cae (diff) | |
download | SMAPI-99e4a4a1ccf5dcbe0e4b1af7591e229a0eeae447.tar.gz SMAPI-99e4a4a1ccf5dcbe0e4b1af7591e229a0eeae447.tar.bz2 SMAPI-99e4a4a1ccf5dcbe0e4b1af7591e229a0eeae447.zip |
fix crash when mods add an invalid location with no name
Diffstat (limited to 'src/SMAPI/Framework')
-rw-r--r-- | src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs b/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs index d9090c08..5a259663 100644 --- a/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs +++ b/src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs @@ -1,6 +1,8 @@ +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using StardewModdingAPI.Framework.StateTracking.Comparers; using StardewModdingAPI.Framework.StateTracking.FieldWatchers; using StardewValley; using StardewValley.Buildings; @@ -18,10 +20,10 @@ namespace StardewModdingAPI.Framework.StateTracking private readonly ICollectionWatcher<GameLocation> LocationListWatcher; /// <summary>A lookup of the tracked locations.</summary> - private IDictionary<GameLocation, LocationTracker> LocationDict { get; } = new Dictionary<GameLocation, LocationTracker>(); + private IDictionary<GameLocation, LocationTracker> LocationDict { get; } = new Dictionary<GameLocation, LocationTracker>(new ObjectReferenceComparer<GameLocation>()); /// <summary>A lookup of registered buildings and their indoor location.</summary> - private readonly IDictionary<Building, GameLocation> BuildingIndoors = new Dictionary<Building, GameLocation>(); + private readonly IDictionary<Building, GameLocation> BuildingIndoors = new Dictionary<Building, GameLocation>(new ObjectReferenceComparer<Building>()); /********* @@ -37,10 +39,10 @@ namespace StardewModdingAPI.Framework.StateTracking public IEnumerable<LocationTracker> Locations => this.LocationDict.Values; /// <summary>The locations removed since the last update.</summary> - public ICollection<GameLocation> Added { get; } = new HashSet<GameLocation>(); + public ICollection<GameLocation> Added { get; } = new HashSet<GameLocation>(new ObjectReferenceComparer<GameLocation>()); /// <summary>The locations added since the last update.</summary> - public ICollection<GameLocation> Removed { get; } = new HashSet<GameLocation>(); + public ICollection<GameLocation> Removed { get; } = new HashSet<GameLocation>(new ObjectReferenceComparer<GameLocation>()); /********* |