using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using AYellowpaper.SerializedCollections; using BITKit; using BITKit.IData; using BITKit.UX; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UIElements; using Random = UnityEngine.Random; namespace BITFactory.Cutting { public class UXCuttingToolService : MonoBehaviour { [SerializeField] private SerializedDictionary brushIconDictionary; [SerializeReference, SubclassSelector] private ICuttingToolService cuttingToolService; [SerializeField] private VisualTreeAsset brushButtonTemplate; [UXBindPath("cuttingBrush-container")] private VisualElement _cuttingBrushContainer; [UXBindPath("brush-info-label")] private Label _brushInfoLabel; [UXBindPath("brush-name-label")] private Label _brushNameLabel; [UXBindPath("brush-fields-container")] private VisualElement _brushFieldsContainer; private readonly ConcurrentDictionary _brushes = new(); private async void Start() { UXUtils.Inject(this); _cuttingBrushContainer.Clear(); var tips = _cuttingBrushContainer.Create