diff options
author | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-09-07 06:10:23 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-09-14 19:19:45 -0400 |
commit | dbd0b97c1790445e8ea187765a79ed22f9f0454b (patch) | |
tree | 1efa9b86743136f0ab022699c0fce51ffc9e9ec6 /src/SMAPI/Metadata | |
parent | 3f1ffd3e4f16e321e63a466da99a5f87a346ce5b (diff) | |
download | SMAPI-dbd0b97c1790445e8ea187765a79ed22f9f0454b.tar.gz SMAPI-dbd0b97c1790445e8ea187765a79ed22f9f0454b.tar.bz2 SMAPI-dbd0b97c1790445e8ea187765a79ed22f9f0454b.zip |
simplify Data/NPCDispositions propagation with changes in SDV 1.4 (#638)
Diffstat (limited to 'src/SMAPI/Metadata')
-rw-r--r-- | src/SMAPI/Metadata/CoreAssetPropagator.cs | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/SMAPI/Metadata/CoreAssetPropagator.cs b/src/SMAPI/Metadata/CoreAssetPropagator.cs index b72590fd..5911ba2c 100644 --- a/src/SMAPI/Metadata/CoreAssetPropagator.cs +++ b/src/SMAPI/Metadata/CoreAssetPropagator.cs @@ -632,27 +632,18 @@ namespace StardewModdingAPI.Metadata /// <returns>Returns whether any NPCs were affected.</returns> private bool ReloadNpcDispositions(LocalizedContentManager content, string key) { - IDictionary<string, string> dispositions = content.Load<Dictionary<string, string>>(key); + IDictionary<string, string> data = content.Load<Dictionary<string, string>>(key); + bool changed = false; foreach (NPC character in this.GetCharacters()) { - if (!character.isVillager() || !dispositions.ContainsKey(character.Name)) - continue; - - NPC clone = new NPC(null, character.Position, character.DefaultMap, character.FacingDirection, character.Name, null, character.Portrait, eventActor: false); - character.Age = clone.Age; - character.Manners = clone.Manners; - character.SocialAnxiety = clone.SocialAnxiety; - character.Optimism = clone.Optimism; - character.Gender = clone.Gender; - character.datable.Value = clone.datable.Value; - character.homeRegion = clone.homeRegion; - character.Birthday_Season = clone.Birthday_Season; - character.Birthday_Day = clone.Birthday_Day; - character.id = clone.id; - character.displayName = clone.displayName; + if (character.isVillager() && data.ContainsKey(character.Name)) + { + character.reloadData(); + changed = true; + } } - return true; + return changed; } /// <summary>Reload the sprites for matching NPCs.</summary> |