From d76675b6f19a2520a412bcfaeb64703ec83b40fb Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sun, 13 Nov 2022 18:07:54 +0300 Subject: [PATCH] Switched from UnityEvent to System.Action --- ColliderCheck/Ground.meta | 2 +- ColliderCheck/Ground/IGroundTrigger.cs.meta | 2 +- .../TwoDimensionalBoxChildGroundTrigger.cs.meta | 2 +- ColliderCheck/IColliderCheckExtensions.cs.meta | 2 +- ColliderCheck/IColliderTrigger.cs | 4 ++-- ColliderCheck/IColliderTrigger.cs.meta | 2 +- .../TwoDimensionalBoxChildColliderCheck.cs | 7 ++----- .../TwoDimensionalBoxChildColliderCheck.cs.meta | 2 +- IMovement.cs | 4 ++-- IMovementController.cs | 6 +++--- .../2D/OneDirectional2DGroundMovement.cs | 2 +- Implementations/2D/OneWay2DAirMovement.cs | 2 +- Implementations/2D/OneWay2DGroundMovement.cs | 2 +- Implementations/2D/TwoDimensionalMovementBase.cs | 13 ++++--------- MovementController.cs | 12 +++++------- State/IToggleState.cs | 4 ++-- State/MemberToggleState.cs | 4 ++-- State/ToggleState.cs | 4 ++-- VariableMovement/IVariableMovementController.cs | 4 ++-- VariableMovement/IVariableMovementWithState.cs | 4 ++-- VariableMovement/VariableMovementController.cs | 12 +++++------- VariableMovement/VariableMovementWithState.cs | 5 ++--- 22 files changed, 44 insertions(+), 57 deletions(-) diff --git a/ColliderCheck/Ground.meta b/ColliderCheck/Ground.meta index 841050f..ba6628e 100644 --- a/ColliderCheck/Ground.meta +++ b/ColliderCheck/Ground.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2c348589c341f3d4f8db2e34198ec32e +guid: 8747cc51a59e7a14fae4687c7136d15b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/ColliderCheck/Ground/IGroundTrigger.cs.meta b/ColliderCheck/Ground/IGroundTrigger.cs.meta index 56118a3..348f8cc 100644 --- a/ColliderCheck/Ground/IGroundTrigger.cs.meta +++ b/ColliderCheck/Ground/IGroundTrigger.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 91b4c4b7439cfcb448a15d0f2ce12ff9 +guid: 8dc876763de82b74cb9a05685d57e841 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/ColliderCheck/Ground/TwoDimensionalBoxChildGroundTrigger.cs.meta b/ColliderCheck/Ground/TwoDimensionalBoxChildGroundTrigger.cs.meta index 46ef330..b4c2ed8 100644 --- a/ColliderCheck/Ground/TwoDimensionalBoxChildGroundTrigger.cs.meta +++ b/ColliderCheck/Ground/TwoDimensionalBoxChildGroundTrigger.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1213a467d17883844b2dc54d266cf211 +guid: df412a9878b7d5b43ab34aef7261ec3a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/ColliderCheck/IColliderCheckExtensions.cs.meta b/ColliderCheck/IColliderCheckExtensions.cs.meta index 2ec5c9b..42d0c67 100644 --- a/ColliderCheck/IColliderCheckExtensions.cs.meta +++ b/ColliderCheck/IColliderCheckExtensions.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8a31fdb05e206b44cbe615353e924344 +guid: d1b41d4e3ee5ce24eaef42d5c8fc8c3a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/ColliderCheck/IColliderTrigger.cs b/ColliderCheck/IColliderTrigger.cs index 2296f90..4909030 100644 --- a/ColliderCheck/IColliderTrigger.cs +++ b/ColliderCheck/IColliderTrigger.cs @@ -1,5 +1,5 @@ +using System; using UnityEngine; -using UnityEngine.Events; namespace Syntriax.Modules.Movement.ColliderTrigger { @@ -7,6 +7,6 @@ namespace Syntriax.Modules.Movement.ColliderTrigger { LayerMask ColliderMask { get; set; } bool IsTrigerred { get; } - UnityEvent OnTriggered { get; } + Action OnTriggered { get; set; } } } diff --git a/ColliderCheck/IColliderTrigger.cs.meta b/ColliderCheck/IColliderTrigger.cs.meta index 3503f91..494474c 100644 --- a/ColliderCheck/IColliderTrigger.cs.meta +++ b/ColliderCheck/IColliderTrigger.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8ab2264f0e385af4d8decc8750297a9e +guid: e199ccade2250b646abfd859e4aa1e7a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs b/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs index 691bad1..7503da8 100644 --- a/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs +++ b/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs @@ -1,5 +1,5 @@ +using System; using UnityEngine; -using UnityEngine.Events; namespace Syntriax.Modules.Movement.ColliderTrigger { @@ -11,7 +11,7 @@ namespace Syntriax.Modules.Movement.ColliderTrigger public LayerMask ColliderMask { get => colliderMask; set => colliderMask = value; } - public UnityEvent OnTriggered { get; protected set; } = null; + public Action OnTriggered { get; set; } = null; public bool IsTrigerred { get => _isTrigerred; @@ -26,9 +26,6 @@ namespace Syntriax.Modules.Movement.ColliderTrigger } } - protected void Awake() - => OnTriggered = new UnityEvent(); - protected void FixedUpdate() => IsTrigerred = Physics2D.OverlapBoxNonAlloc(transform.position, transform.localScale, 0, results, ColliderMask) > 0; diff --git a/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs.meta b/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs.meta index bead24f..d1165ea 100644 --- a/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs.meta +++ b/ColliderCheck/TwoDimensionalBoxChildColliderCheck.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 090650329160e7b42ba89ccfad00375e +guid: cbd3633509c80ca49b6ae013c990bdbe MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/IMovement.cs b/IMovement.cs index a521822..445deaa 100644 --- a/IMovement.cs +++ b/IMovement.cs @@ -1,4 +1,4 @@ -using UnityEngine.Events; +using System; namespace Syntriax.Modules.Movement { @@ -9,7 +9,7 @@ namespace Syntriax.Modules.Movement bool CanTakeOver { get; } - UnityEvent OnTakeOverStateChanged { get; } + Action OnTakeOverStateChanged { get; set; } void Move(float x = 0f, float y = 0f, float z = 0f); void ApplyMovement(); diff --git a/IMovementController.cs b/IMovementController.cs index 28cbdf2..8a4757b 100644 --- a/IMovementController.cs +++ b/IMovementController.cs @@ -1,5 +1,5 @@ +using System; using System.Collections.Generic; -using UnityEngine.Events; namespace Syntriax.Modules.Movement { @@ -8,8 +8,8 @@ namespace Syntriax.Modules.Movement IMovement ActiveMovement { get; } List Movements { get; } - UnityEvent OnMovementDeactivated { get; } - UnityEvent OnMovementActivated { get; } + Action OnMovementDeactivated { get; set; } + Action OnMovementActivated { get; set; } void RecacheMovements(); } diff --git a/Implementations/2D/OneDirectional2DGroundMovement.cs b/Implementations/2D/OneDirectional2DGroundMovement.cs index 3be80fd..a6ca5fc 100644 --- a/Implementations/2D/OneDirectional2DGroundMovement.cs +++ b/Implementations/2D/OneDirectional2DGroundMovement.cs @@ -12,7 +12,7 @@ namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { base.Start(); groundTrigger = GetComponentInChildren(); - groundTrigger.OnTriggered.AddListener(OnGroundTrigger); + groundTrigger.OnTriggered += OnGroundTrigger; } private void OnGroundTrigger(bool isGrounded) diff --git a/Implementations/2D/OneWay2DAirMovement.cs b/Implementations/2D/OneWay2DAirMovement.cs index 463c2d8..b4005b0 100644 --- a/Implementations/2D/OneWay2DAirMovement.cs +++ b/Implementations/2D/OneWay2DAirMovement.cs @@ -12,7 +12,7 @@ namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { base.Start(); groundTrigger = GetComponentInChildren(); - groundTrigger.OnTriggered.AddListener(OnGroundTrigger); + groundTrigger.OnTriggered += OnGroundTrigger; } private void OnGroundTrigger(bool isGrounded) diff --git a/Implementations/2D/OneWay2DGroundMovement.cs b/Implementations/2D/OneWay2DGroundMovement.cs index 544888e..bc4208e 100644 --- a/Implementations/2D/OneWay2DGroundMovement.cs +++ b/Implementations/2D/OneWay2DGroundMovement.cs @@ -12,7 +12,7 @@ namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { base.Start(); groundTrigger = GetComponentInChildren(); - groundTrigger.OnTriggered.AddListener(OnGroundTrigger); + groundTrigger.OnTriggered += OnGroundTrigger; } private void OnGroundTrigger(bool isGrounded) diff --git a/Implementations/2D/TwoDimensionalMovementBase.cs b/Implementations/2D/TwoDimensionalMovementBase.cs index fa7c5ed..1a5c407 100644 --- a/Implementations/2D/TwoDimensionalMovementBase.cs +++ b/Implementations/2D/TwoDimensionalMovementBase.cs @@ -1,6 +1,6 @@ +using System; using Syntriax.Modules.Movement.State; using UnityEngine; -using UnityEngine.Events; namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { @@ -15,7 +15,7 @@ namespace Syntriax.Modules.Movement.Implementations.TwoDimensional public float BaseSpeed { get; set; } = 1f; public float MovementMultiplier { get; set; } = 1f; - public UnityEvent OnTakeOverStateChanged { get; protected set; } = null; + public Action OnTakeOverStateChanged { get; set; } = null; public bool CanTakeOver { get => _canTakeOver; @@ -32,19 +32,14 @@ namespace Syntriax.Modules.Movement.Implementations.TwoDimensional public IToggleState ToggleState { get; protected set; } = null; - protected virtual void Awake() - { - OnTakeOverStateChanged = new UnityEvent(); - } - protected virtual void Start() { rigid = GetComponent(); toggleState = GetComponent(); movementController = GetComponent(); - movementController.OnMovementActivated.AddListener(OnActivated); - movementController.OnMovementDeactivated.AddListener(OnDeactivated); + movementController.OnMovementActivated += OnActivated; + movementController.OnMovementDeactivated += OnDeactivated; } protected abstract void OnDeactivated(); diff --git a/MovementController.cs b/MovementController.cs index dba5743..2764dc0 100644 --- a/MovementController.cs +++ b/MovementController.cs @@ -1,14 +1,14 @@ +using System; using System.Collections.Generic; using Syntriax.Modules.Movement.State; using UnityEngine; -using UnityEngine.Events; namespace Syntriax.Modules.Movement { public class MovementController : MonoBehaviour, IMovementController { - public UnityEvent OnMovementDeactivated { get; protected set; } = null; - public UnityEvent OnMovementActivated { get; protected set; } = null; + public Action OnMovementDeactivated { get; set; } = null; + public Action OnMovementActivated { get; set; } = null; private IMovement _activeMovement = null; public IMovement ActiveMovement @@ -35,8 +35,6 @@ namespace Syntriax.Modules.Movement protected virtual void Awake() { - OnMovementDeactivated = new UnityEvent(); - OnMovementActivated = new UnityEvent(); Movements = new List(32); } @@ -57,14 +55,14 @@ namespace Syntriax.Modules.Movement public virtual void RecacheMovements() { foreach (IMovement movement in Movements) - movement.OnTakeOverStateChanged.RemoveListener(OnTakeOverListener); + movement.OnTakeOverStateChanged -= OnTakeOverListener; Movements.Clear(); GetComponents(Movements); UpdateActiveMovement(); foreach (IMovement movement in Movements) - movement.OnTakeOverStateChanged.AddListener(OnTakeOverListener); + movement.OnTakeOverStateChanged += OnTakeOverListener; } private void OnTakeOverListener(bool arg0) => UpdateActiveMovement(); diff --git a/State/IToggleState.cs b/State/IToggleState.cs index 73202fb..1fa483a 100644 --- a/State/IToggleState.cs +++ b/State/IToggleState.cs @@ -1,10 +1,10 @@ -using UnityEngine.Events; +using System; namespace Syntriax.Modules.Movement.State { public interface IToggleState { bool Toggled { get; set; } - UnityEvent OnToggleStateChanged { get; } + Action OnToggleStateChanged { get; set; } } } diff --git a/State/MemberToggleState.cs b/State/MemberToggleState.cs index ebbc276..db7080b 100644 --- a/State/MemberToggleState.cs +++ b/State/MemberToggleState.cs @@ -1,4 +1,4 @@ -using UnityEngine.Events; +using System; namespace Syntriax.Modules.Movement.State { @@ -20,6 +20,6 @@ namespace Syntriax.Modules.Movement.State } } - public UnityEvent OnToggleStateChanged { get; protected set; } = new UnityEvent(); + public Action OnToggleStateChanged { get; set; } = null; } } diff --git a/State/ToggleState.cs b/State/ToggleState.cs index 95ebc0d..ce8f219 100644 --- a/State/ToggleState.cs +++ b/State/ToggleState.cs @@ -1,5 +1,5 @@ +using System; using UnityEngine; -using UnityEngine.Events; namespace Syntriax.Modules.Movement.State { @@ -20,6 +20,6 @@ namespace Syntriax.Modules.Movement.State } } - public UnityEvent OnToggleStateChanged { get; protected set; } = new UnityEvent(); + public Action OnToggleStateChanged { get; set; } = null; } } diff --git a/VariableMovement/IVariableMovementController.cs b/VariableMovement/IVariableMovementController.cs index 3e290bb..d4e4d7e 100644 --- a/VariableMovement/IVariableMovementController.cs +++ b/VariableMovement/IVariableMovementController.cs @@ -1,4 +1,4 @@ -using UnityEngine.Events; +using System; using UnityEngine.InputSystem; namespace Syntriax.Modules.Movement.VariableMovement @@ -6,7 +6,7 @@ namespace Syntriax.Modules.Movement.VariableMovement public interface IVariableMovementController { IVariableMovement ActiveVariableMovement { get; } - UnityEvent OnVariableMovementChanged { get; } + Action OnVariableMovementChanged { get; set; } IInputActionCollection InputActionCollection { get; set; } void LoadVariableMovementCollection(VMCollection collection); diff --git a/VariableMovement/IVariableMovementWithState.cs b/VariableMovement/IVariableMovementWithState.cs index 736501e..af5df89 100644 --- a/VariableMovement/IVariableMovementWithState.cs +++ b/VariableMovement/IVariableMovementWithState.cs @@ -1,4 +1,4 @@ -using UnityEngine.Events; +using System; using UnityEngine.InputSystem; namespace Syntriax.Modules.Movement.VariableMovement @@ -6,7 +6,7 @@ namespace Syntriax.Modules.Movement.VariableMovement public interface IVariableMovementWithState : IVariableMovement { bool Enabled { get; set; } - UnityEvent OnToggleStateChanged { get; } + Action OnToggleStateChanged { get; set; } IInputActionCollection InputCollection { set; } } } diff --git a/VariableMovement/VariableMovementController.cs b/VariableMovement/VariableMovementController.cs index 5e80489..7fb676b 100644 --- a/VariableMovement/VariableMovementController.cs +++ b/VariableMovement/VariableMovementController.cs @@ -1,14 +1,13 @@ using System; using System.Collections.Generic; using UnityEngine; -using UnityEngine.Events; using UnityEngine.InputSystem; namespace Syntriax.Modules.Movement.VariableMovement { public class VariableMovementController : MonoBehaviour, IVariableMovementController { - public UnityEvent OnVariableMovementChanged { get; protected set; } = null; + public Action OnVariableMovementChanged { get; set; } = null; private IInputActionCollection _inputActionCollection = null; public IInputActionCollection InputActionCollection { @@ -43,7 +42,6 @@ namespace Syntriax.Modules.Movement.VariableMovement protected virtual void Awake() { - OnVariableMovementChanged = new UnityEvent(); defaultVariableMovement = new VariableMovement(); variableMovementsWithState = new List(16); } @@ -51,8 +49,8 @@ namespace Syntriax.Modules.Movement.VariableMovement protected virtual void Start() { movementController = GetComponent(); - movementController.OnMovementActivated.AddListener(SetMultiplierToActiveMovement); - movementController.OnMovementDeactivated.AddListener(ResetMultiplierToDefault); + movementController.OnMovementActivated += SetMultiplierToActiveMovement; + movementController.OnMovementDeactivated += ResetMultiplierToDefault; } private void ResetMultiplierToDefault(IMovement currentMovement) @@ -91,13 +89,13 @@ namespace Syntriax.Modules.Movement.VariableMovement protected virtual void SubscribeToMovements() { foreach (IVariableMovementWithState variableMovementWithState in variableMovementsWithState) - variableMovementWithState.OnToggleStateChanged.AddListener(VariableMovementStateListener); + variableMovementWithState.OnToggleStateChanged += VariableMovementStateListener; } protected virtual void UnsubscribeFromMovements() { foreach (IVariableMovementWithState variableMovementWithState in variableMovementsWithState) - variableMovementWithState.OnToggleStateChanged.RemoveListener(VariableMovementStateListener); + variableMovementWithState.OnToggleStateChanged -= VariableMovementStateListener; } private void VariableMovementStateListener(bool arg0) => UpdateActiveVariableMovement(); diff --git a/VariableMovement/VariableMovementWithState.cs b/VariableMovement/VariableMovementWithState.cs index a9f7d08..490c7b8 100644 --- a/VariableMovement/VariableMovementWithState.cs +++ b/VariableMovement/VariableMovementWithState.cs @@ -1,11 +1,11 @@ -using UnityEngine.Events; +using System; using UnityEngine.InputSystem; namespace Syntriax.Modules.Movement.VariableMovement { public class VariableMovementWithState : IVariableMovementWithState { - public UnityEvent OnToggleStateChanged { get; protected set; } = null; + public Action OnToggleStateChanged { get; set; } = null; private bool _enabled = false; public bool Enabled { @@ -52,7 +52,6 @@ namespace Syntriax.Modules.Movement.VariableMovement public VariableMovementWithState(VMAsset asset, IInputActionCollection inputCollection) { InputCollection = inputCollection; - OnToggleStateChanged = new UnityEvent(); Asset = asset; }