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 a helper to manipulate the data as a dictionary. /// The expected dictionary key. /// The expected dictionary balue. /// The content being read isn't a dictionary. IContentEventHelperForDictionary AsDictionary(); /// Get a helper to manipulate the data as an image. /// The content being read isn't an image. IContentEventHelperForImage AsImage(); /// Get the data as a given type. /// The expected data type. /// The data can't be converted to . TData GetData(); /// 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); } }