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

86 lines
2.6 KiB
C#

using PixelCrushers.QuestMachine;
using System.Collections;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
namespace Beyond
{
public class QuestLogMenuController : MonoBehaviour
{
[SerializeField] private bUnityUIQuestJournalUI machineJournalUI;
[SerializeField] private QuestJournal questJournal;
[SerializeField] private Toggle activeToggle, succededToggle, failedToggle;
private void Awake()
{
activeToggle.onValueChanged.AddListener(
delegate
{
SetFiltering(activeToggle);
});
succededToggle.onValueChanged.AddListener(
delegate
{
SetFiltering(succededToggle);
});
failedToggle.onValueChanged.AddListener(
delegate
{
SetFiltering(failedToggle);
});
}
private void OnDestroy()
{
if (activeToggle)
{
activeToggle.onValueChanged.RemoveListener(
delegate { SetFiltering(activeToggle); });
}
if (succededToggle)
{
succededToggle.onValueChanged.RemoveListener(
delegate { SetFiltering(succededToggle); });
}
if (failedToggle)
{
failedToggle.onValueChanged.RemoveListener(
delegate { SetFiltering(failedToggle); });
}
}
public void OpenJournal()
{
StartCoroutine(OpenJournalCoroutine());
}
private IEnumerator OpenJournalCoroutine()
{
yield return new WaitUntil(() => machineJournalUI.gameObject.activeInHierarchy);
machineJournalUI.Show(questJournal);
}
public void SetFiltering(Toggle toggle)
{
if (toggle == activeToggle)
{
machineJournalUI.showActiveQuests = toggle.isOn;
}
else if (toggle == succededToggle)
{
machineJournalUI.showSuccededQuests = toggle.isOn;
}
else
{
machineJournalUI.showFailedQuests = toggle.isOn;
}
// machineJournalUI.showActiveQuests = activeToggle.isOn;
//machineJournalUI.showSuccededQuests = succededToggle.isOn;
//machineJournalUI.showFailedQuests = failedToggle.isOn;
machineJournalUI.RefreshQuestsContent();
}
}
}