summaryrefslogtreecommitdiff
path: root/GameCode/EnumSelector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/EnumSelector.cs')
-rw-r--r--GameCode/EnumSelector.cs163
1 files changed, 0 insertions, 163 deletions
diff --git a/GameCode/EnumSelector.cs b/GameCode/EnumSelector.cs
deleted file mode 100644
index 8ad79be..0000000
--- a/GameCode/EnumSelector.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class EnumSelector : MonoBehaviour
-{
- public ThronefallUIElement target;
-
- public List<string> options = new List<string>();
-
- private int index;
-
- public bool delayedApply;
-
- public GameObject applyButton;
-
- public ThronefallUIElement.NavigationDirection increase;
-
- public ThronefallUIElement.NavigationDirection decrease = ThronefallUIElement.NavigationDirection.Left;
-
- public TextMeshProUGUI display;
-
- public GameObject buttons;
-
- public UnityEvent onChange = new UnityEvent();
-
- public UnityEvent onIncrease = new UnityEvent();
-
- public UnityEvent onDecrease = new UnityEvent();
-
- private bool unpropagatedChanges;
-
- private int bufferIndex;
-
- public int Index => index;
-
- private void Start()
- {
- target.onApply.AddListener(PropagateDelayedChange);
- target.onSelectionStateChange.AddListener(OnLinkedTFUINavigate);
- }
-
- private void UpdateDisplay()
- {
- if (unpropagatedChanges)
- {
- display.text = options[index] + "<style=Settings Warning> *</style>";
- if ((bool)applyButton)
- {
- applyButton.SetActive(value: true);
- }
- }
- else
- {
- display.text = options[index];
- if ((bool)applyButton)
- {
- applyButton.SetActive(value: false);
- }
- }
- }
-
- public void Navigate(ThronefallUIElement.NavigationDirection direction)
- {
- if (direction == increase)
- {
- onIncrease.Invoke();
- index++;
- }
- else if (direction == decrease)
- {
- index--;
- onDecrease.Invoke();
- }
- if (index > options.Count - 1)
- {
- index = 0;
- }
- if (index < 0)
- {
- index = options.Count - 1;
- }
- if (delayedApply && index != bufferIndex)
- {
- unpropagatedChanges = true;
- }
- else
- {
- unpropagatedChanges = false;
- }
- UpdateDisplay();
- if (!delayedApply)
- {
- ApplyChanges();
- }
- }
-
- public void Increase()
- {
- Navigate(increase);
- }
-
- public void Decrease()
- {
- Navigate(decrease);
- }
-
- public void OnTFUIStateChange()
- {
- if (target.CurrentState != 0)
- {
- buttons.SetActive(value: true);
- }
- else
- {
- buttons.SetActive(value: false);
- }
- }
-
- public void SetIndex(int i)
- {
- index = i;
- if (index > options.Count - 1)
- {
- index = 0;
- }
- if (index < 0)
- {
- index = options.Count - 1;
- }
- bufferIndex = index;
- UpdateDisplay();
- }
-
- public void OnLinkedTFUINavigate()
- {
- CancelChanges();
- }
-
- public void PropagateDelayedChange()
- {
- if (delayedApply)
- {
- ApplyChanges();
- }
- }
-
- private void ApplyChanges()
- {
- bufferIndex = index;
- onChange.Invoke();
- unpropagatedChanges = false;
- UpdateDisplay();
- }
-
- private void CancelChanges()
- {
- index = bufferIndex;
- unpropagatedChanges = false;
- UpdateDisplay();
- }
-}