summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/SettingsUIHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/SettingsUIHelper.cs')
-rw-r--r--Thronefall_v1.0/Decompile/SettingsUIHelper.cs114
1 files changed, 114 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/SettingsUIHelper.cs b/Thronefall_v1.0/Decompile/SettingsUIHelper.cs
new file mode 100644
index 0000000..1156f53
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/SettingsUIHelper.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class SettingsUIHelper : MonoBehaviour
+{
+ [Serializable]
+ public class SettingsTab
+ {
+ public TFUITextButton parentElement;
+
+ public VerticalLayoutGroup childContainer;
+
+ public void ComputeNavigationForSettingsTab()
+ {
+ List<ThronefallUIElement> list = new List<ThronefallUIElement>();
+ foreach (Transform item in childContainer.transform)
+ {
+ list.Add(item.GetComponent<ThronefallUIElement>());
+ }
+ parentElement.botNav = list[0];
+ parentElement.topNav = list[list.Count - 1];
+ for (int i = 0; i < list.Count; i++)
+ {
+ ThronefallUIElement thronefallUIElement = list[i];
+ if (i == 0)
+ {
+ thronefallUIElement.topNav = parentElement;
+ }
+ else
+ {
+ thronefallUIElement.topNav = list[i - 1];
+ }
+ if (i == list.Count - 1)
+ {
+ thronefallUIElement.botNav = parentElement;
+ }
+ else
+ {
+ thronefallUIElement.botNav = list[i + 1];
+ }
+ }
+ }
+ }
+
+ public UIFrame targetFrame;
+
+ public SettingsTab videoTab;
+
+ public SettingsTab audioTab;
+
+ public SettingsTab gameplayTab;
+
+ public SettingsTab controlsTab;
+
+ public GameObject dimBG;
+
+ private SettingsTab currentSelectedTab;
+
+ private Dictionary<ThronefallUIElement, SettingsTab> allTabs = new Dictionary<ThronefallUIElement, SettingsTab>();
+
+ private void Awake()
+ {
+ allTabs.Add(videoTab.parentElement, videoTab);
+ allTabs.Add(audioTab.parentElement, audioTab);
+ allTabs.Add(gameplayTab.parentElement, gameplayTab);
+ allTabs.Add(controlsTab.parentElement, controlsTab);
+ videoTab.childContainer.gameObject.SetActive(value: false);
+ audioTab.childContainer.gameObject.SetActive(value: false);
+ gameplayTab.childContainer.gameObject.SetActive(value: false);
+ controlsTab.childContainer.gameObject.SetActive(value: false);
+ RecomputeAllNavigation();
+ }
+
+ private void RecomputeAllNavigation()
+ {
+ videoTab.ComputeNavigationForSettingsTab();
+ audioTab.ComputeNavigationForSettingsTab();
+ gameplayTab.ComputeNavigationForSettingsTab();
+ controlsTab.ComputeNavigationForSettingsTab();
+ }
+
+ public void OnShow()
+ {
+ if (SceneTransitionManager.instance.CurrentSceneState == SceneTransitionManager.SceneState.MainMenu)
+ {
+ dimBG.SetActive(value: false);
+ }
+ else
+ {
+ dimBG.SetActive(value: true);
+ }
+ }
+
+ public void OnSelect()
+ {
+ SettingsTab value = null;
+ if (allTabs.TryGetValue(targetFrame.CurrentSelection, out value))
+ {
+ if (currentSelectedTab != null)
+ {
+ currentSelectedTab.childContainer.gameObject.SetActive(value: false);
+ currentSelectedTab.parentElement.applyOverrideStyle = false;
+ }
+ currentSelectedTab = value;
+ currentSelectedTab.childContainer.gameObject.SetActive(value: true);
+ }
+ else if (currentSelectedTab != null)
+ {
+ currentSelectedTab.parentElement.applyOverrideStyle = true;
+ }
+ }
+}