Neg_Utils/NEG/UI/UnityUi/MonoController.cs
2023-11-21 16:34:45 +01:00

32 lines
955 B
C#

using KBCore.Refs;
using NEG.UI.UnityUi.Window;
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 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();
protected virtual void OnOpened(object data) { }
protected virtual void OnClosed() { }
protected virtual void OnBackUsed(IControllable.BackUsed obj) { }
}
}