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(); } } }