using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using BITKit; using BITKit.Entities; using BITKit.UX; using Net.Project.B.Quest; using UnityEngine; using UnityEngine.UIElements; namespace Net.Project.B.UX { public class UXQuest : UIToolkitSubPanel, IUXQuest where TPanel : IUXPanel { private readonly IEntitiesService _entitiesService; private readonly IQuestService _questService; private readonly ConcurrentDictionary _visualElements = new(); private VisualTreeAsset _template; [UXBindPath("quest-container")] private VisualElement _questContainer; public UXQuest(IServiceProvider serviceProvider, IQuestService questService, IEntitiesService entitiesService) : base(serviceProvider) { _questService = questService; _entitiesService = entitiesService; _questService.OnQuestCreatedOrUpdated += OnQuestCreatedOrUpdated; } private void OnQuestCreatedOrUpdated(IQuestData arg1, QuestState arg2, QuestState arg3) { switch (arg3) { case QuestState.Active: var container = _questContainer.Create(_template); container.Get