using System; using Syntriax.Modules.State; using UnityEngine; namespace Syntriax.Modules.Action { public class Action : MonoBehaviour, IAction { private IStateEnable _stateEnable = null; public IStateEnable StateEnable { get { _stateEnable = _stateEnable ?? GetComponent() ?? gameObject.AddComponent(); return _stateEnable; } } public Action OnActivated { get; set; } = null; public void Activate() { if (!StateEnable.IsEnabledNullChecked()) return; OnActivated?.Invoke(this); } } }