From c5f145786f4c6d2fe4bea831dfc16e52228920a5 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Sun, 19 May 2024 16:05:01 +0800 Subject: * move --- GameCode/EnumSelector.cs | 163 ----------------------------------------------- 1 file changed, 163 deletions(-) delete mode 100644 GameCode/EnumSelector.cs (limited to 'GameCode/EnumSelector.cs') 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 options = new List(); - - 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] + " *"; - 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(); - } -} -- cgit v1.1-26-g67d0