63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
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 : MonoBehaviour
|
|
{
|
|
[SerializeReference, SubclassSelector] private IPlayerService playerService;
|
|
protected virtual void Start()
|
|
{
|
|
BITKit.UX.UXUtils.Inject(this);
|
|
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;
|
|
}
|
|
}
|
|
public abstract class UXPanelBase : 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;
|
|
}
|
|
}
|
|
|
|
}
|