30 lines
		
	
	
		
			901 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			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) { }
 | |
|     }
 | |
| } |