/********* ** Public methods *********/ /// <summary>Construct an instance.</summary> /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="modData">The mod's hardcoded data.</param> /// <param name="getConfig">Get the current config model.</param> /// <param name="reset">Reset the config model to the default values.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForSmallBeachFarm(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, ModData modData, Func <ModConfig> getConfig, Action reset, Action saveAndApply) { this.ConfigMenu = new GenericModConfigMenuIntegration <ModConfig>(modRegistry, monitor, manifest, getConfig, reset, saveAndApply); foreach (ModFarmMapData farm in modData.FarmMaps) { this.FarmChoices[farm.ID] = farm.Name ?? farm.Map; } }
/********* ** Private methods *********/ /**** ** Event handlers ****/ /// <inheritdoc cref="IGameLoopEvents.GameLaunched"/> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void OnGameLaunched(object sender, GameLaunchedEventArgs e) { GenericModConfigMenuIntegration.Register(this.ModManifest, this.Helper.ModRegistry, this.Monitor, getConfig: () => this.Config, reset: () => this.Config = new(), save: () => this.Helper.WriteConfig(this.Config) ); }
/********* ** Public methods *********/ /// <summary>Construct an instance.</summary> /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="parseCommaDelimitedField">The Generic Mod Config Menu integration.</param> /// <param name="config">The config model.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForContentPack(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, Func <string, InvariantHashSet> parseCommaDelimitedField, InvariantDictionary <ConfigField> config, Action saveAndApply) { this.Config = config; this.ConfigMenu = new GenericModConfigMenuIntegration <InvariantDictionary <ConfigField> >( modRegistry: modRegistry, monitor: monitor, consumerManifest: manifest, getConfig: () => config, reset: () => { this.Reset(); saveAndApply(); }, saveAndApply ); this.ParseCommaDelimitedField = parseCommaDelimitedField; }
/********* ** Public methods *********/ /// <summary>Construct an instance.</summary> /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="getConfig">Get the current config model.</param> /// <param name="reset">Reset the config model to the default values.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForHorseFluteAnywhere(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, Func <ModConfig> getConfig, Action reset, Action saveAndApply) { this.ConfigMenu = new GenericModConfigMenuIntegration <ModConfig>(modRegistry, monitor, manifest, getConfig, reset, saveAndApply); }
/********* ** Public methods *********/ /// <summary>Construct an instance.</summary> /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="data">The internal mod data.</param> /// <param name="getConfig">Get the current config model.</param> /// <param name="reset">Reset the config model to the default values.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForAutomate(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, DataModel data, Func <ModConfig> getConfig, Action reset, Action saveAndApply) { this.ConfigMenu = new GenericModConfigMenuIntegration <ModConfig>(modRegistry, monitor, manifest, getConfig, reset, saveAndApply); this.Data = data; }
/********* ** Public methods *********/ /// <summary>Construct an instance.</summary> /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="getConfig">Get the current config model.</param> /// <param name="reset">Reset the config model to the default values.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForTractor(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, Func <ModConfig> getConfig, Action reset, Action saveAndApply) { this.ConfigMenu = new GenericModConfigMenuIntegration <ModConfig>(modRegistry, monitor, manifest, getConfig, reset, saveAndApply); this.ModRegistry = modRegistry; }
/// <summary>Construct an instance.</summary> /// <param name="modRegistry">API for fetching metadata about loaded mods.</param> /// <param name="monitor">Encapsulates monitoring and logging.</param> /// <param name="manifest">The mod manifest.</param> /// <param name="getConfig">Get the current config model.</param> /// <param name="reset">Reset the config model to the default values.</param> /// <param name="saveAndApply">Save and apply the current config model.</param> public GenericModConfigMenuIntegrationForAwesomeTools(IModRegistry modRegistry, IMonitor monitor, IManifest manifest, Func <ToolConfig> getConfig, Action reset, Action saveAndApply) { _modRegistry = modRegistry; _configMenu = new GenericModConfigMenuIntegration <ToolConfig>(modRegistry, monitor, manifest, getConfig, reset, saveAndApply); }