30 lines
901 B
C#
30 lines
901 B
C#
using KBCore.Refs;
|
|
using NEG.UI.UnityUi.Window;
|
|
using NegUtils.NEG.UI;
|
|
using UnityEngine;
|
|
|
|
namespace NEG.UI.UnityUi
|
|
{
|
|
public abstract class MonoController : MonoBehaviour, IController
|
|
{
|
|
[SerializeField] [Self] protected InterfaceRef<IControllable> controllable;
|
|
|
|
protected MonoWindow ControllableAsWindow => (MonoWindow)controllable.Value;
|
|
|
|
protected virtual void Awake()
|
|
{
|
|
controllable.Value.OnOpened += OnOpened;
|
|
controllable.Value.OnClosed += OnClosed;
|
|
controllable.Value.OnBackUsed += OnBackUsed;
|
|
}
|
|
|
|
private void OnValidate() => this.ValidateRefs();
|
|
public IControllable Controllable => controllable.Value;
|
|
|
|
protected virtual void OnOpened(object data) { }
|
|
|
|
protected virtual void OnClosed() { }
|
|
|
|
protected virtual void OnBackUsed(IControllable.BackUsed obj) { }
|
|
}
|
|
} |