/// <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 ProviderFactoryConfiguration?TryCreate(IPackageProviderFactory factory, PathTuple <ApplicationConfig> mod)
    {
        var isEnabled = factory.TryGetConfigurationOrDefault(mod, out var configuration);

        if (configuration == null)
        {
            return(null);
        }

        return(new ProviderFactoryConfiguration()
        {
            Configuration = configuration,
            IsEnabled = isEnabled,
            Factory = factory
        });
    }
Пример #2
0
 /// <summary>
 /// Assigns a configuration of type T to the application.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="factory">The factory from which the configuration is sourced from.</param>
 /// <param name="application">The application 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 IPackageProviderFactory factory, PathTuple <ApplicationConfig> application, T value)
 {
     application.Config.PluginData[factory.ResolverId] = value;
 }
Пример #3
0
 /// <summary>
 /// Removes a configuration from the application.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="factory">The factory from which the configuration is sourced from.</param>
 /// <param name="application">The application config to assign the configuration to.</param>
 /// <returns>Whether the configuration was found or not.</returns>
 public static void RemoveConfiguration <T>(this IPackageProviderFactory factory, PathTuple <ApplicationConfig> application)
 {
     application.Config.PluginData.Remove(factory.ResolverId);
 }
Пример #4
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="application">The application 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 IPackageProviderFactory factory, PathTuple <ApplicationConfig> application, out T?configuration)
 {
     return(application.Config.PluginData.TryGetValue <T>(factory.ResolverId, out configuration));
 }