From 8b1fc7063b387542803c6bc214ccf8acb32870bd Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Sun, 19 May 2024 16:46:27 +0800 Subject: * rename --- Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs | 103 ++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs (limited to 'Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs') diff --git a/Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs b/Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs new file mode 100644 index 0000000..220e26a --- /dev/null +++ b/Thronefall_1_0/Decompile/ChoiceUIFrameHelper.cs @@ -0,0 +1,103 @@ +using System.Collections.Generic; +using I2.Loc; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class ChoiceUIFrameHelper : MonoBehaviour +{ + public UIFrame frame; + + public HorizontalLayoutGroup choicesParent; + + public TFUIUpgradeChoice upgradeChoiceButtonPrefab; + + public TextMeshProUGUI choiceTitle; + + public TextMeshProUGUI choiceDescription; + + private List choices = new List(); + + public void OnShow() + { + choices.Clear(); + foreach (Transform item in choicesParent.transform) + { + Object.Destroy(item.gameObject); + } + foreach (Choice availableChoice in ChoiceManager.instance.availableChoices) + { + AddChoiceTFUI(choicesParent, availableChoice); + } + RecomputeNavigation(); + } + + private void AddChoiceTFUI(HorizontalLayoutGroup parent, Choice _choice) + { + TFUIUpgradeChoice component = Object.Instantiate(upgradeChoiceButtonPrefab, parent.transform).GetComponent(); + component.SetData(_choice); + choices.Add(component); + } + + private void RecomputeNavigation() + { + for (int i = 0; i < choices.Count; i++) + { + TFUIUpgradeChoice tFUIUpgradeChoice = choices[i]; + if (i <= 0) + { + tFUIUpgradeChoice.leftNav = choices[choices.Count - 1]; + } + else + { + tFUIUpgradeChoice.leftNav = choices[i - 1]; + } + if (i >= choices.Count - 1) + { + tFUIUpgradeChoice.rightNav = choices[0]; + } + else + { + tFUIUpgradeChoice.rightNav = choices[i + 1]; + } + } + frame.firstSelected = choices[0]; + } + + public void UpdateSelectedChoice() + { + TFUIUpgradeChoice tFUIUpgradeChoice = null; + if (frame.CurrentFocus != null) + { + tFUIUpgradeChoice = frame.CurrentFocus as TFUIUpgradeChoice; + } + if (tFUIUpgradeChoice == null && frame.CurrentSelection != null) + { + tFUIUpgradeChoice = frame.CurrentSelection as TFUIUpgradeChoice; + } + if (tFUIUpgradeChoice != null) + { + if (!tFUIUpgradeChoice.Locked) + { + BuildSlot currentOriginBuildSlot = ChoiceManager.instance.currentOriginBuildSlot; + choiceTitle.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICENAME(tFUIUpgradeChoice.Data)); + choiceDescription.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICEDESCRIPTION(tFUIUpgradeChoice.Data)); + } + else + { + choiceTitle.text = LocalizationManager.GetTranslation("Menu/Locked"); + choiceDescription.text = LocalizationManager.GetTranslation("Menu/Locked Choice Description"); + } + } + } + + public void OnApply() + { + TFUIUpgradeChoice tFUIUpgradeChoice = frame.LastApplied as TFUIUpgradeChoice; + if (!(tFUIUpgradeChoice == null) && !tFUIUpgradeChoice.Locked) + { + ChoiceManager.instance.choiceToReturn = tFUIUpgradeChoice.Data; + UIFrameManager.instance.CloseActiveFrame(); + } + } +} -- cgit v1.1-26-g67d0