Neg_Utils/NEG/UI/UnityUi/MonoController.cs

29 lines
823 B
C#

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<IControllable> controllable;
protected virtual void Awake()
{
controllable.Value.OnOpened += OnOpened;
controllable.Value.OnClosed += OnClosed;
controllable.Value.UseBack += UseBack;
}
private void OnValidate() => this.ValidateRefs();
protected virtual void OnOpened(object data) { }
protected virtual void OnClosed() { }
protected virtual void UseBack(IControllable.BackUsed obj) { }
}
}