public static void UpdateSettings <T>(T settings, SettingsInfo info) where T : ConfigModel { try { if (!(settings is null)) { MockCounter.Highlight(settings); } ClearScreen(); if (!(info is null)) { if (info.IsCustom) { CreateBase(settings, (settings as CustomConfigModel).RestrictedPositions); } else { SubMenu sub = CreateBase(settings); AdvancedCounterSettings.counterUIItems[settings](sub, settings); } } Instance.SelectedSettingsInfo = info; Instance.SelectedConfigModel = settings; settingsTitle = BeatSaberUI.CreateText(rect, $"{settings.DisplayName} Settings", Vector2.zero); settingsTitle.fontSize = 6; settingsTitle.alignment = TextAlignmentOptions.Center; SetPositioning(settingsTitle.rectTransform, 0, 0.85f, 1, 0.166f, 0.5f); LoadedElements.Add(settingsTitle.gameObject); InitSettings(); } catch (Exception e) { Plugin.Log(e.ToString(), LogInfo.Fatal, "Go to the Counters+ GitHub and open an Issue. This shouldn't happen!"); } }
public static void UpdateSettings <T>(T settings) where T : ConfigModel { try { if (settings is null) { return; } wasInMainSettingsMenu = false; SelectedConfigModel = settings; ClearScreen(true); MockCounter.Highlight(settings); string name = string.Join("", settings.DisplayName.Split(' ')); if (settings is CustomConfigModel custom) { ConfigModelController.GenerateController(custom.CustomCounter.CustomSettingsHandler, Instance.SettingsContainer, custom.CustomCounter.CustomSettingsResource, true, settings); name = custom.CustomCounter.Name; } else { Type controllerType = Type.GetType($"CountersPlus.UI.ViewControllers.ConfigModelControllers.{name}Controller"); ConfigModelController controller = ConfigModelController.GenerateController(settings, controllerType, Instance.SettingsContainer); } Instance.SettingsName.text = $"{(settings is null ? "Oops!" : $"{settings.DisplayName} Settings")}"; }
internal static void ShowMainSettings() { ClearScreen(); MockCounter.Highlight <ConfigModel>(null); settingsTitle = BeatSaberUI.CreateText(rect, "Main Settings", Vector2.zero); settingsTitle.fontSize = 6; settingsTitle.alignment = TextAlignmentOptions.Center; SetPositioning(settingsTitle.rectTransform, 0, 0.85f, 1, 0.166f, 0.5f); LoadedElements.Add(settingsTitle.gameObject); SubMenu sub = new SubMenu(rect); var enabled = AddList(ref sub, null as ConfigModel, "Enabled", "Toggles Counters+ on or off.", 2); enabled.GetTextForValue = (v) => (v != 0f) ? "ON" : "OFF"; enabled.GetValue = () => CountersController.settings.Enabled ? 1f : 0f; enabled.SetValue = (v) => CountersController.settings.Enabled = v != 0f; var toggleCounters = AddList(ref sub, null as ConfigModel, "Advanced Mock Counters", "Allows the mock counters to display more settings. To increase preformance, and reduce chances of bugs, disable this option.", 2); toggleCounters.GetTextForValue = (v) => (v != 0f) ? "ON" : "OFF"; toggleCounters.GetValue = () => CountersController.settings.AdvancedCounterInfo ? 1f : 0f; toggleCounters.SetValue = (v) => CountersController.settings.AdvancedCounterInfo = v != 0f; var comboOffset = AddList(ref sub, null as ConfigModel, "Combo Offset", "How far from the Combo counters should be before Distance is taken into account.", 20); comboOffset.GetTextForValue = (v) => ((v - 10) / 10).ToString(); comboOffset.GetValue = () => (CountersController.settings.ComboOffset * 10) + 10; comboOffset.SetValue = (v) => CountersController.settings.ComboOffset = ((v - 10) / 10); var multiOffset = AddList(ref sub, null as ConfigModel, "Multiplier Offset", "How far from the Multiplier counters should be before Distance is taken into account.", 20); multiOffset.GetTextForValue = (v) => ((v - 10) / 10).ToString(); multiOffset.GetValue = () => (CountersController.settings.MultiplierOffset * 10) + 10; multiOffset.SetValue = (v) => CountersController.settings.MultiplierOffset = ((v - 10) / 10); var hideCombo = AddList(ref sub, null as ConfigModel, "Hide Combo In-Game", "The combo counter wasn't good enough anyways.", 2); hideCombo.GetTextForValue = (v) => (v != 0f) ? "ON" : "OFF"; hideCombo.GetValue = () => CountersController.settings.HideCombo ? 1f : 0f; hideCombo.SetValue = (v) => CountersController.settings.HideCombo = v != 0f; var hideMultiplier = AddList(ref sub, null as ConfigModel, "Hide Multiplier In-Game", "The multiplier wasn't good enough anyways.", 2); hideMultiplier.GetTextForValue = (v) => (v != 0f) ? "ON" : "OFF"; hideMultiplier.GetValue = () => CountersController.settings.HideMultiplier ? 1f : 0f; hideMultiplier.SetValue = (v) => CountersController.settings.HideMultiplier = v != 0f; toggleCounters.SetValue += (v) => CountersPlusSettingsFlowCoordinator.UpdateMockCounters(); comboOffset.SetValue += (v) => CountersPlusSettingsFlowCoordinator.UpdateMockCounters(); multiOffset.SetValue += (v) => CountersPlusSettingsFlowCoordinator.UpdateMockCounters(); foreach (ListViewController list in LoadedSettings) //Should be cleared from the ClearScreen function. { list.SetValue += (v) => CountersController.settings.Save(); } InitSettings(); }
internal static void ShowMainSettings() { ClearScreen(true); Instance.SettingsName.text = "Main Settings"; Type controllerType = Type.GetType($"CountersPlus.UI.ViewControllers.ConfigModelControllers.MainSettingsController"); ConfigModelController.GenerateController(controllerType, Instance.SettingsContainer, "CountersPlus.UI.BSML.MainSettings.bsml"); MockCounter.Highlight <ConfigModel>(null); SelectedConfigModel = null; wasInMainSettingsMenu = true; }
public override void OnCellSelect(TableView view, int row, CountersPlusHorizontalSettingsListViewController settings) { CountersPlusEditViewController.ClearScreen(true); MockCounter.Highlight <ConfigModel>(null); switch (row) { case 0: RefreshScreen("General", "General HUD Settings"); break; case 1: RefreshScreen("Camera", "HUD Camera Settings"); break; case 2: RefreshScreen("Position", "HUD Position Offset"); break; case 3: RefreshScreen("Rotation", "HUD Rotation"); break; } }