Basic Confirmation
unknown
plain_text
2 months ago
2.0 kB
1
Indexable
using System; using PlayerCore.Upgrades.AbilityInputData; using PlayerCore.Upgrades.Base; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace UserInterface.AbilityInput { public class ConfirmationPanelManager : MonoBehaviour, IAbilityInputPanel { [Header("Confirmation Config")] [SerializeField] private TextMeshProUGUI confirmationTitleText; [SerializeField] private TextMeshProUGUI confirmationDescriptionText; [SerializeField] private Button confirmButton; private UnityAction cachedPreviousEvent; public void Initialize(FAbilityInputData data) { confirmationTitleText.text = data.abilityInputTitle; confirmationDescriptionText.text = GetActivationDescription(data.upgrade); if (cachedPreviousEvent != null) { confirmButton.onClick.RemoveListener(cachedPreviousEvent); } //add listener if payload is not null, update cachedEvent. //onConfirm event is passed in null since it is generic if (data.onConfirmEvent != null) { cachedPreviousEvent = () => data.onConfirmEvent.Invoke(data.upgrade, null); confirmButton.onClick.AddListener(cachedPreviousEvent); } else { //default cachedEvent to null cachedPreviousEvent = null; } } public string GetActivationDescription(UpgradeDefinitionSO upgrade) { return $"You are activating {upgrade.upgradeName}.\nAre you sure?"; } private void OnDisable() { confirmButton.onClick.RemoveAllListeners(); cachedPreviousEvent = null; confirmationTitleText.text = String.Empty; confirmationDescriptionText.text = String.Empty; } } }
Editor is loading...
Leave a Comment