Neg_Utils/NEG/UI/UnityUi/MonoController.cs
2024-02-12 21:26:24 +01:00

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) { }
}
}