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; } /// Optional metadata about a mod version that SMAPI should assume is compatible or broken, regardless of whether it detects incompatible code. ModCompatibility Compatibility { 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; } /********* ** 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); } }