summaryrefslogtreecommitdiff
path: root/GameCode/UIFrameManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/UIFrameManager.cs')
-rw-r--r--GameCode/UIFrameManager.cs286
1 files changed, 0 insertions, 286 deletions
diff --git a/GameCode/UIFrameManager.cs b/GameCode/UIFrameManager.cs
deleted file mode 100644
index 80752f8..0000000
--- a/GameCode/UIFrameManager.cs
+++ /dev/null
@@ -1,286 +0,0 @@
-using System.Collections.Generic;
-using Rewired;
-using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.SceneManagement;
-
-public class UIFrameManager : MonoBehaviour
-{
- public static UIFrameManager instance;
-
- [SerializeField]
- private string titleFrameSceneName = "_StartMenu";
-
- [SerializeField]
- private UIFrame titleFrame;
-
- [SerializeField]
- private UIFrame overworldPauseMenuFrame;
-
- [SerializeField]
- private UIFrame inMatchPauseMenuFrame;
-
- [SerializeField]
- private UIFrame levelSelectFrame;
-
- [SerializeField]
- private UIFrame endOfMatchFrame;
-
- [SerializeField]
- private UIFrame levelUpRewardFrame;
-
- [SerializeField]
- private UIFrame choiceFrame;
-
- private UIFrame activeFrame;
-
- private List<UIFrame> frames = new List<UIFrame>();
-
- private Player input;
-
- private Stack<UIFrame> frameStack = new Stack<UIFrame>();
-
- [SerializeField]
- private RectTransform inGameUIContainer;
-
- [SerializeField]
- private RectTransform onScreenMarkerContainer;
-
- [SerializeField]
- private TreasureChestUIHelper treasureChest;
-
- [HideInInspector]
- public UnityEvent onFrameOpen = new UnityEvent();
-
- private SceneTransitionManager sceneTransitionManager;
-
- public UIFrame ActiveFrame => activeFrame;
-
- public RectTransform InGameUIContainer => inGameUIContainer;
-
- public RectTransform OnScreenMarkerContainer => onScreenMarkerContainer;
-
- public TreasureChestUIHelper TreasureChest => treasureChest;
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- }
- else
- {
- instance = this;
- }
- }
-
- private void Start()
- {
- if (SceneManager.sceneCount <= 1)
- {
- SceneManager.LoadScene(titleFrameSceneName, LoadSceneMode.Additive);
- }
- foreach (UIFrame frame in frames)
- {
- frame.Deactivate();
- }
- if (IsSceneLoaded(titleFrameSceneName))
- {
- SwitchToTitleFrame();
- }
- input = ReInput.players.GetPlayer(0);
- sceneTransitionManager = SceneTransitionManager.instance;
- sceneTransitionManager.onSceneChange.AddListener(UpdateUIBasedOnCurrentScene);
- UpdateUIBasedOnCurrentScene();
- }
-
- public void SwitchToTitleFrame()
- {
- ChangeActiveFrame(titleFrame);
- }
-
- public bool IsSceneLoaded(string sceneName)
- {
- for (int i = 0; i < SceneManager.sceneCount; i++)
- {
- if (SceneManager.GetSceneAt(i).name == sceneName)
- {
- return true;
- }
- }
- return false;
- }
-
- private void Update()
- {
- if (input.GetButtonDown("Pause Menu"))
- {
- OpenMenu();
- }
- else if (input.GetButtonDown("Cancel"))
- {
- Cancel();
- }
- }
-
- private void Cancel()
- {
- if (activeFrame != null && activeFrame != titleFrame && !activeFrame.canNotBeEscaped)
- {
- CloseActiveFrame();
- }
- }
-
- private void OpenMenu()
- {
- if (activeFrame != null && !activeFrame.canNotBeEscaped)
- {
- CloseActiveFrame();
- }
- else if (activeFrame == null && SceneManager.GetSceneByName(SceneTransitionManager.instance.levelSelectScene).IsValid())
- {
- ChangeActiveFrame(overworldPauseMenuFrame);
- }
- else if (activeFrame == null)
- {
- ChangeActiveFrame(inMatchPauseMenuFrame);
- }
- }
-
- public void RegisterFrame(UIFrame frame)
- {
- frames.Add(frame);
- }
-
- public void ChangeActiveFrame(UIFrame nextFrame)
- {
- ProcessFrameChange(nextFrame, writeOldFrameToStack: true);
- }
-
- public void ChangeActiveFrameKeepOldVisible(UIFrame nextFrame)
- {
- ProcessFrameChange(nextFrame, writeOldFrameToStack: true, keepOldFrameGameObjectActive: true);
- }
-
- private void ProcessFrameChange(UIFrame nextFrame, bool writeOldFrameToStack, bool keepOldFrameGameObjectActive = false)
- {
- if (nextFrame != null)
- {
- if (LocalGamestate.Instance != null)
- {
- LocalGamestate.Instance.SetPlayerFreezeState(nextFrame.freezePlayer);
- }
- if (nextFrame.freezeTime)
- {
- Time.timeScale = 0f;
- }
- else
- {
- Time.timeScale = 1f;
- }
- if (activeFrame != null && writeOldFrameToStack)
- {
- frameStack.Push(activeFrame);
- }
- onFrameOpen.Invoke();
- }
- else
- {
- if (LocalGamestate.Instance != null)
- {
- LocalGamestate.Instance.SetPlayerFreezeState(frozen: false);
- }
- Time.timeScale = 1f;
- frameStack.Clear();
- }
- if (activeFrame != null)
- {
- if (activeFrame == choiceFrame && ChoiceManager.instance.ChoiceCoroutineWaiting)
- {
- ChoiceManager.instance.CancelChoice();
- }
- activeFrame.Deactivate(keepOldFrameGameObjectActive);
- }
- if (nextFrame != null)
- {
- nextFrame.Activate();
- }
- activeFrame = nextFrame;
- }
-
- public void CloseActiveFrame()
- {
- if (activeFrame != null)
- {
- if (frameStack.Count > 0)
- {
- ProcessFrameChange(frameStack.Pop(), writeOldFrameToStack: false);
- }
- else
- {
- ChangeActiveFrame(null);
- }
- }
- }
-
- public void CloseAllFrames()
- {
- if (activeFrame != null)
- {
- frameStack.Clear();
- ChangeActiveFrame(null);
- }
- }
-
- public void ResetToTileScreen()
- {
- ProcessFrameChange(titleFrame, writeOldFrameToStack: false);
- frameStack.Clear();
- }
-
- public void QuitToDesktop()
- {
- Application.Quit();
- }
-
- public static bool TryOpenLevelSelect()
- {
- if (instance.activeFrame != null)
- {
- return false;
- }
- instance.ChangeActiveFrame(instance.levelSelectFrame);
- return true;
- }
-
- public static void TriggerEndOfMatch()
- {
- instance.ProcessFrameChange(instance.endOfMatchFrame, writeOldFrameToStack: false);
- }
-
- public static void ShowLevelUpReward()
- {
- instance.ProcessFrameChange(instance.levelUpRewardFrame, writeOldFrameToStack: true, keepOldFrameGameObjectActive: true);
- }
-
- private void UpdateUIBasedOnCurrentScene()
- {
- switch (sceneTransitionManager.CurrentSceneState)
- {
- case SceneTransitionManager.SceneState.InGame:
- treasureChest.gameObject.SetActive(value: true);
- break;
- case SceneTransitionManager.SceneState.LevelSelect:
- treasureChest.gameObject.SetActive(value: false);
- break;
- case SceneTransitionManager.SceneState.MainMenu:
- treasureChest.gameObject.SetActive(value: false);
- break;
- }
- }
-
- public void PresentChoiceFrame()
- {
- ProcessFrameChange(choiceFrame, writeOldFrameToStack: false);
- }
-}