using StardewModdingAPI.Framework.Models; using StardewModdingAPI.Framework.ModLoading; namespace StardewModdingAPI.Framework { /// Metadata for a mod. internal interface IModMetadata { /********* ** Accessors *********/ /// The mod's display name. string DisplayName { get; } /// The mod's full directory path. string DirectoryPath { get; } /// The mod manifest. IManifest Manifest { get; } /// >Metadata about the mod from SMAPI's internal data (if any). ModDataRecord DataRecord { get; } /// The metadata resolution status. ModMetadataStatus Status { get; } /// The reason the metadata is invalid, if any. string Error { get; } /// The mod instance (if it was loaded). IMod Mod { get; } /// The mod-provided API (if any). object Api { get; } /********* ** Public methods *********/ /// Set the mod status. /// The metadata resolution status. /// The reason the metadata is invalid, if any. /// Return the instance for chaining. IModMetadata SetStatus(ModMetadataStatus status, string error = null); /// Set the mod instance. /// The mod instance to set. IModMetadata SetMod(IMod mod); /// Set the mod-provided API instance. /// The mod-provided API. IModMetadata SetApi(object api); } }