using CustomUI.Settings; using IPA.Config; using VRUI; namespace BSIPA_ModList.UI { internal static class SettingsViewController { private static SubMenu menu; private static BoolViewController autoUpdate; private static BoolViewController autoCheck; private static BoolViewController showEnableDisable; public static VRUIViewController Create() { menu = SettingsUI.CreateSubMenu("ModListSettings", false); autoCheck = menu.AddBool("Auto Update Check", "If enabled, automatically checks for updates on game start."); autoUpdate = menu.AddBool("Auto Update", "If enabled, automatically installs updates after checking for them."); showEnableDisable = menu.AddBool("Show Enable/Disable Button", "If enabled, BSIPA mods will have a button to enable or disable them."); autoCheck.applyImmediately = true; autoCheck.GetValue += () => IPA.Config.SelfConfig.SelfConfigRef.Value.Updates.AutoCheckUpdates; autoCheck.SetValue += val => { IPA.Config.SelfConfig.SelfConfigRef.Value.Updates.AutoCheckUpdates = val; IPA.Config.SelfConfig.LoaderConfig.Store(IPA.Config.SelfConfig.SelfConfigRef.Value); }; autoUpdate.applyImmediately = true; autoUpdate.GetValue += () => IPA.Config.SelfConfig.SelfConfigRef.Value.Updates.AutoUpdate; autoUpdate.SetValue += val => { IPA.Config.SelfConfig.SelfConfigRef.Value.Updates.AutoUpdate = val; IPA.Config.SelfConfig.LoaderConfig.Store(IPA.Config.SelfConfig.SelfConfigRef.Value); }; showEnableDisable.applyImmediately = true; showEnableDisable.GetValue += () => Plugin.config.Value.ShowEnableDisable; showEnableDisable.SetValue += val => { Plugin.config.Value.ShowEnableDisable = val; Plugin.provider.Store(Plugin.config.Value); }; autoCheck.Init(); autoUpdate.Init(); showEnableDisable.Init(); return menu.viewController; } } }