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