using System; using System.Collections; using System.Collections.Generic; using System.Linq; using Beyond; using PixelCrushers; using PixelCrushers.QuestMachine; using UnityEngine; public class bUnityUIQuestHUD : PixelCrushers.QuestMachine.Wrappers.UnityUIQuestHUD { [SerializeField] private GameObject m_hudButton; private CanvasGroup m_canvaGroup; private List m_cutScenes = new List(); private MenuScroll m_menuScroll; private bool m_hided; private UIPanel m_UIPanel; protected override void Awake() { base.Awake(); m_canvaGroup = GetComponent(); m_UIPanel = GetComponent(); m_menuScroll = FindObjectOfType(); QuestMachine.defaultQuestHUD = this; m_cutScenes = FindObjectsOfType(true).ToList(); } private void Start() { /* if (m_menuScroll != null) { m_menuScroll.OnOpened += uiPanel.Close; m_menuScroll.OnClosed += uiPanel.Open; m_menuScroll.OnClosed += RefreshNow; } m_cutScenes.ForEach(x => { x.m_onStartEvent.AddListener(uiPanel.Close); x.m_onEndEvent.AddListener(uiPanel.Open); x.m_onEndEvent.AddListener(RefreshNow); }); VideoCutsceneController.Instance.OnVideoStart.AddListener(uiPanel.Close); VideoCutsceneController.Instance.OnVideoEnd.AddListener(uiPanel.Open); VideoCutsceneController.Instance.OnVideoEnd.AddListener(RefreshNow); */ SaveSystem.saveDataApplied += RefreshNow; } private bool CanClose() { return m_UIPanel && (m_UIPanel.isOpen && m_UIPanel.panelState != UIPanel.PanelState.Closing && m_UIPanel.panelState != UIPanel.PanelState.Closed); } private void OnEnable() { if (CanClose()) m_UIPanel.Close(); m_UIPanel.Open(); if (questListContainer != null) RefreshNow(); } private void OnDisable() { if (CanClose()) m_UIPanel.Close(); } public override void Show() { m_canvaGroup.alpha = 1f; } public override void Hide() { m_canvaGroup.alpha = 0f; } protected override bool ShouldBeVisible() { return base.ShouldBeVisible() && !m_hided; } protected override void MakeInvisible() { m_hided = true; base.MakeInvisible(); } protected override void MakeVisible() { m_hided = false; base.MakeVisible(); } private void OnDestroy() { /* VideoCutsceneController.Instance.OnVideoStart.RemoveListener(uiPanel.Close); VideoCutsceneController.Instance.OnVideoEnd.RemoveListener(uiPanel.Open); VideoCutsceneController.Instance.OnVideoEnd.RemoveListener(RefreshNow); m_cutScenes.ForEach(x => { x.m_onStartEvent.RemoveListener(uiPanel.Close); x.m_onEndEvent.RemoveListener(uiPanel.Open); x.m_onEndEvent.RemoveListener(RefreshNow); }); if (m_menuScroll != null) { m_menuScroll.OnOpened -= uiPanel.Close; m_menuScroll.OnClosed -= uiPanel.Open; m_menuScroll.OnClosed -= RefreshNow; } */ SaveSystem.saveDataApplied -= RefreshNow; } }