using System; namespace StardewModdingAPI { /// Encapsulates access and changes to content being read from a data file. public interface IContentEventHelper { /********* ** Accessors *********/ /// The content's locale code, if the content is localised. string Locale { get; } /// The normalised asset name being read. The format may change between platforms; see to compare with a known path. string AssetName { get; } /// The content data being read. object Data { get; } /********* ** Public methods *********/ /// Get whether the asset name being loaded matches a given name after normalisation. /// The expected asset path, relative to the game's content folder and without the .xnb extension or locale suffix (like 'Data\ObjectInformation'). bool IsAssetName(string path); /// Get the data as a given type. /// The expected data type. /// The data can't be converted to . TData GetData(); /// Add or replace an entry in the dictionary data. /// The entry key type. /// The entry value type. /// The entry key. /// The entry value. /// The content being read isn't a dictionary. void SetDictionaryEntry(TKey key, TValue value); /// Add or replace an entry in the dictionary data. /// The entry key type. /// The entry value type. /// The entry key. /// A callback which accepts the current value and returns the new value. /// The content being read isn't a dictionary. void SetDictionaryEntry(TKey key, Func value); /// Replace the entire content value with the given value. This is generally not recommended, since it may break compatibility with other mods or different versions of the game. /// The new content value. /// The is null. /// The 's type is not compatible with the loaded asset's type. void ReplaceWith(object value); } }