/// <summary> /// Tries to create a configuration for the resolver. /// </summary> /// <param name="factory">The factory used to get and set the configuration.</param> /// <param name="mod">The mod to assign the configuration to.</param> /// <returns>The configuration.</returns> public static ResolverFactoryConfiguration?TryCreate(IUpdateResolverFactory factory, PathTuple <ModConfig> mod) { var isEnabled = factory.TryGetConfigurationOrDefault(mod, out var configuration); if (configuration == null) { return(null); } return(new ResolverFactoryConfiguration() { Configuration = configuration, IsEnabled = isEnabled, Factory = factory }); }
/// <summary> /// Removes a configuration from the mod. /// </summary> /// <param name="factory">The factory from which the configuration is sourced from.</param> /// <param name="mod">The mod config to assign the configuration to.</param> /// <returns>Whether the configuration was found or not.</returns> public static void RemoveConfiguration(this IUpdateResolverFactory factory, PathTuple <ModConfig> mod) { mod.Config.PluginData.Remove(factory.ResolverId); }
/// <summary> /// Attempts to get a configuration of type T. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="factory">The factory to get configuration from.</param> /// <param name="mod">The mod config to get configuration from.</param> /// <param name="configuration">The returned configuration.</param> /// <returns>Whether the configuration was found or not.</returns> public static bool TryGetConfiguration <T>(this IUpdateResolverFactory factory, PathTuple <ModConfig> mod, out T?configuration) { return(mod.Config.PluginData.TryGetValue <T>(factory.ResolverId, out configuration)); }
/// <summary> /// Assigns a configuration of type T to the mod. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="factory">The factory from which the configuration is sourced from.</param> /// <param name="mod">The mod config to assign the configuration to.</param> /// <param name="value">The configuration value to set.</param> /// <returns>Whether the configuration was found or not.</returns> public static void SetConfiguration <T>(this IUpdateResolverFactory factory, PathTuple <ModConfig> mod, T value) { mod.Config.PluginData[factory.ResolverId] = value; }
public RemoveConfiguration(PathTuple <ModConfig> config, IUpdateResolverFactory factory) { Config = config; Factory = factory; }