29 lines
952 B
C#
29 lines
952 B
C#
namespace ModpackUpdater;
|
|
|
|
public class InstallOptionValueDictionary : Dictionary<string, bool>
|
|
{
|
|
public void SetOption(InstallOptionSet set, InstallOption option, bool value)
|
|
{
|
|
if (!set.Options.Contains(option))
|
|
throw new KeyNotFoundException("Options seems to be not a part of the option set.");
|
|
if (option.Default == value)
|
|
UnsetOption(set, option);
|
|
else
|
|
this[$"{set.Id}.{option.Id}"] = value;
|
|
}
|
|
|
|
public void UnsetOption(InstallOptionSet set, InstallOption option)
|
|
{
|
|
if (!set.Options.Contains(option))
|
|
throw new KeyNotFoundException("Options seems to be not a part of the option set.");
|
|
Remove($"{set.Id}.{option.Id}");
|
|
}
|
|
|
|
public bool GetOptionValue(InstallOptionSet set, InstallOption option)
|
|
{
|
|
if (TryGetValue($"{set.Id}.{option.Id}", out var value))
|
|
return value;
|
|
return option.Default;
|
|
}
|
|
}
|