summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/SMAPI/Framework/StateTracking/WorldLocationsTracker.cs16
1 files changed, 8 insertions, 8 deletions
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)