예제 #1
0
    /// <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
        });
    }
예제 #2
0
 /// <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);
 }
예제 #3
0
 /// <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));
 }
예제 #4
0
 /// <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;
 }
예제 #5
0
 public RemoveConfiguration(PathTuple <ModConfig> config, IUpdateResolverFactory factory)
 {
     Config  = config;
     Factory = factory;
 }