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