using System.Collections; using System.Collections.Generic; using BITFALL.Hotkey; using BITKit; using BITKit.Entities; using BITKit.Entities.Player; using BITKit.Selection; using BITKit.UX; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UIElements; namespace BITFALL.UX { public abstract class UXBase : UIToolKitPanel { [SerializeReference, SubclassSelector] private IPlayerService playerService; protected override void Start() { base.Start(); destroyCancellationToken.Register(Dispose); playerService.OnPlayerInitialized += OnPlayerInitialized; playerService.OnPlayerDisposed += OnPlayerDisposed; } protected virtual void OnPlayerDisposed(Entity obj) { InjectAttribute.Clear(this); } protected virtual void OnPlayerInitialized(Entity obj) { obj.Inject(this); } protected virtual void Dispose() { playerService.OnPlayerInitialized -= OnPlayerInitialized; } } }