using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.UX; using Net.Project.B.Quest; using UnityEngine; using UnityEngine.UIElements; namespace Net.Like.Xue.Tokyo.UX { public class UXQuestList : UIToolKitPanel { private readonly IQuestService _questService; protected override string DocumentPath => "ui_quest_list"; public override bool CloseWhenClickOutside => true; public override bool AllowCursor => true; [UXBindPath("quest-container")] private VisualElement _questContainer; private VisualTreeAsset _questTemplate; private readonly Dictionary _visualElements = new(); public UXQuestList(IUXService uxService, IQuestService questService) : base(uxService) { _questService = questService; _questService.OnQuestCreatedOrUpdated += OnQuestCreatedOrUpdated; OnInitiated += Initiated; } private void Initiated() { _questTemplate = _questContainer.Q().templateSource; _questContainer.Clear(); } private void OnQuestCreatedOrUpdated(IQuestData arg1, QuestState arg2, QuestState arg3) { if (_visualElements.TryGetValue(arg1.Identity, out var container) is false) { _visualElements[arg1.Identity] = container = _questContainer.Create(_questTemplate); } container.Get