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;