// Copyright (c) Pixel Crushers. All rights reserved. using UnityEngine; namespace PixelCrushers.DialogueSystem { /// /// Unity UI template for a quest name button with a toggle for progress tracking. /// [AddComponentMenu("")] // Use wrapper. public class StandardUIQuestTitleButtonTemplate : StandardUIContentTemplate { [Header("Quest Title Button")] [Tooltip("Button UI element.")] public UnityEngine.UI.Button button; [Tooltip("Label text to set on button.")] public UITextField label; [Header("Tracking Toggle")] public StandardUIToggleTemplate trackToggleTemplate; public virtual void Awake() { if (button == null && DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: UI Button is unassigned.", this); if (trackToggleTemplate == null && DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: UI Track Toggle Template is unassigned.", this); } public virtual void Assign(string questName, string displayName, ToggleChangedDelegate trackToggleDelegate) { if (UITextField.IsNull(label)) label.uiText = button.GetComponentInChildren(); name = questName; label.text = displayName; var canTrack = QuestLog.IsQuestActive(questName) && QuestLog.IsQuestTrackingAvailable(questName); trackToggleTemplate.Assign(canTrack, QuestLog.IsQuestTrackingEnabled(questName), questName, trackToggleDelegate); } } }