diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2017-03-08 15:25:30 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2017-03-08 15:25:30 -0500 |
commit | b2e88bccf63545d950f4cbf47a0466321c614245 (patch) | |
tree | e7c96f0129322a9b6df2e1bef064580f45bd4056 /src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs | |
parent | dfaed472b0e7f1e35ad07eea427fe5034b40ddc7 (diff) | |
download | SMAPI-b2e88bccf63545d950f4cbf47a0466321c614245.tar.gz SMAPI-b2e88bccf63545d950f4cbf47a0466321c614245.tar.bz2 SMAPI-b2e88bccf63545d950f4cbf47a0466321c614245.zip |
add dictionary/image content helpers for more intuitive usage (#173)
Diffstat (limited to 'src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs')
-rw-r--r-- | src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs b/src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs new file mode 100644 index 00000000..8fcaae3c --- /dev/null +++ b/src/StardewModdingAPI/Framework/Content/ContentEventHelperForDictionary.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; + +namespace StardewModdingAPI.Framework.Content +{ + /// <summary>Encapsulates access and changes to dictionary content being read from a data file.</summary> + internal class ContentEventHelperForDictionary<TKey, TValue> : ContentEventBaseHelper<IDictionary<TKey, TValue>>, IContentEventHelperForDictionary<TKey, TValue> + { + /********* + ** Public methods + *********/ + /// <summary>Construct an instance.</summary> + /// <param name="locale">The content's locale code, if the content is localised.</param> + /// <param name="assetName">The normalised asset name being read.</param> + /// <param name="data">The content data being read.</param> + /// <param name="getNormalisedPath">Normalises an asset key to match the cache key.</param> + public ContentEventHelperForDictionary(string locale, string assetName, IDictionary<TKey, TValue> data, Func<string, string> getNormalisedPath) + : base(locale, assetName, data, getNormalisedPath) { } + + /// <summary>Add or replace an entry in the dictionary data.</summary> + /// <param name="key">The entry key.</param> + /// <param name="value">The entry value.</param> + public void SetEntry(TKey key, TValue value) + { + this.Data[key] = value; + } + + /// <summary>Add or replace an entry in the dictionary data.</summary> + /// <param name="key">The entry key.</param> + /// <param name="value">A callback which accepts the current value and returns the new value.</param> + public void SetEntry(TKey key, Func<TValue, TValue> value) + { + this.Data[key] = value(this.Data[key]); + } + } +} |