From f2faa86f6505c63dd4b4f0822231bb8dbb56ea79 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Mon, 20 Mar 2023 22:22:42 +0300 Subject: [PATCH] BREAKING CHANGE: State 0.2.0 --- README.md | 2 +- Runtime/Collider/ColliderTrigger.cs | 4 ++-- Runtime/ITrigger.cs | 6 +++--- Runtime/TriggerBase.cs | 29 +++++++++++++++++++++++++---- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b3bc691..c566614 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Trigger ## Dependencies -1. [ToggleState Module](https://git.syntriax.com/Syntriax/ToggleState) +1. [State Module](https://git.syntriax.com/Syntriax/State) diff --git a/Runtime/Collider/ColliderTrigger.cs b/Runtime/Collider/ColliderTrigger.cs index 74af49a..6047e30 100644 --- a/Runtime/Collider/ColliderTrigger.cs +++ b/Runtime/Collider/ColliderTrigger.cs @@ -1,4 +1,4 @@ -using Syntriax.Modules.ToggleState; +using Syntriax.Modules.State; namespace Syntriax.Modules.Trigger { @@ -13,7 +13,7 @@ namespace Syntriax.Modules.Trigger private void FixedUpdate() { - if (!ToggleStateMember.IsToggledNullChecked()) + if (!StateEnable.IsEnabledNullChecked()) return; IsTrigerred = colliderTrigger.Check(); diff --git a/Runtime/ITrigger.cs b/Runtime/ITrigger.cs index 2288e84..068226c 100644 --- a/Runtime/ITrigger.cs +++ b/Runtime/ITrigger.cs @@ -1,14 +1,14 @@ using System; -using Syntriax.Modules.ToggleState; +using Syntriax.Modules.State; namespace Syntriax.Modules.Trigger { public interface ITrigger { /// - /// Member to switch on or off + /// to switch on or off /// - IToggleState ToggleStateMember { get; } + IStateEnable StateEnable { get; } /// /// Called everytime the IsTrigerred field is changed diff --git a/Runtime/TriggerBase.cs b/Runtime/TriggerBase.cs index 0d30249..ba33aa9 100644 --- a/Runtime/TriggerBase.cs +++ b/Runtime/TriggerBase.cs @@ -1,22 +1,43 @@ using System; -using Syntriax.Modules.ToggleState; +using Syntriax.Modules.State; using UnityEngine; namespace Syntriax.Modules.Trigger { public class TriggerBase : MonoBehaviour, ITrigger { - public IToggleState ToggleStateMember { get; protected set; } = new ToggleStateMember(true); - public Action OnTriggerStateChanged { get; set; } = null; + private IStateEnable stateEnable = null; + public IStateEnable StateEnable + { + get + { + if (stateEnable == null) + { + stateEnable = GetComponent() ?? gameObject.AddComponent(); + stateEnable.OnEnabledChanged += OnEnabledChanged; + } + return stateEnable; + } + } + + private void OnEnabledChanged(bool enabled) + { + if (enabled) + return; + + _isTrigerred = false; + OnTriggerStateChanged?.Invoke(false); + } + private bool _isTrigerred = false; public bool IsTrigerred { get => _isTrigerred; protected set { - if (value == _isTrigerred || !ToggleStateMember.IsToggledNullChecked()) + if (value == _isTrigerred || !StateEnable.IsEnabledNullChecked()) return; _isTrigerred = value;