diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/TooltipManager.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/TooltipManager.cs | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/TooltipManager.cs b/Thronefall_v1.0/Decompile/TooltipManager.cs new file mode 100644 index 0000000..54be2e3 --- /dev/null +++ b/Thronefall_v1.0/Decompile/TooltipManager.cs @@ -0,0 +1,102 @@ +using UnityEngine; + +public class TooltipManager : MonoBehaviour +{ + public Tooltip targetTooltip; + + private PlayerInteraction playerInteraction; + + private string tutorialOverridePriority = ""; + + private string tutorialOverride = ""; + + private string nextTooltipText = ""; + + private InteractorBase lastFocus; + + private int lastFocusLevel = -9999; + + private bool interactorRefreshFlag; + + public static TooltipManager instance; + + public void SetTutorialOverride(string _text, bool _priorityText = true) + { + if (_priorityText) + { + tutorialOverridePriority = _text; + } + else + { + tutorialOverride = _text; + } + } + + private void Awake() + { + instance = this; + } + + private void Start() + { + playerInteraction = PlayerInteraction.instance; + SceneTransitionManager.instance.onSceneChange.AddListener(ResetAfterSceneLoad); + } + + private void ResetAfterSceneLoad() + { + tutorialOverride = ""; + tutorialOverridePriority = ""; + nextTooltipText = ""; + } + + private void Update() + { + if (playerInteraction != PlayerInteraction.instance) + { + playerInteraction = PlayerInteraction.instance; + } + if (playerInteraction == null) + { + return; + } + if (UIFrameManager.instance.ActiveFrame != null) + { + nextTooltipText = ""; + interactorRefreshFlag = true; + } + else if (tutorialOverridePriority != "") + { + nextTooltipText = tutorialOverridePriority; + interactorRefreshFlag = true; + } + else if ((bool)playerInteraction.FocussedInteractor) + { + if (lastFocus != playerInteraction.FocussedInteractor || interactorRefreshFlag) + { + nextTooltipText = playerInteraction.FocussedInteractor.ReturnTooltip(); + lastFocus = playerInteraction.FocussedInteractor; + interactorRefreshFlag = false; + } + } + else if (tutorialOverride != "") + { + nextTooltipText = tutorialOverride; + interactorRefreshFlag = true; + } + else + { + nextTooltipText = ""; + lastFocus = null; + } + if (nextTooltipText != targetTooltip.currentText) + { + targetTooltip.SetTooltip(nextTooltipText); + } + } + + public void SetInteractorRefreshFlag() + { + interactorRefreshFlag = true; + } +} |