Files
beyond/Assets/Scripts/QuestMachineDerivatives/bUnityUIQuestHUD.cs
2024-11-20 15:21:28 +01:00

126 lines
3.3 KiB
C#

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<CutScene> m_cutScenes = new List<CutScene>();
private MenuScroll m_menuScroll;
private bool m_hided;
private UIPanel m_UIPanel;
protected override void Awake()
{
base.Awake();
m_canvaGroup = GetComponent<CanvasGroup>();
m_UIPanel = GetComponent<UIPanel>();
m_menuScroll = FindObjectOfType<MenuScroll>();
QuestMachine.defaultQuestHUD = this;
m_cutScenes = FindObjectsOfType<CutScene>(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;
}
}