namespace ModpackUpdater; public class InstallOptionValueDictionary : Dictionary { 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; } }