From b93c9662187993e4a4b809a592315182171b5c88 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sun, 13 Nov 2022 17:43:30 +0300 Subject: [PATCH] Folder/Namespace Structure Improvements --- Implementations.meta | 8 ++++ 2D.meta => Implementations/2D.meta | 0 .../2D/OneDirectional2DAirMovement.cs | 40 +++++++++++++++++++ .../2D/OneDirectional2DAirMovement.cs.meta | 0 .../2D/OneDirectional2DGroundMovement.cs | 31 ++++++++++++++ .../2D/OneDirectional2DGroundMovement.cs.meta | 0 .../2D/OneDirectional2DMovementBase.cs | 10 +++++ .../2D/OneDirectional2DMovementBase.cs.meta | 0 .../2D}/OneWay2DAirMovement.cs | 2 +- .../2D/OneWay2DAirMovement.cs.meta | 11 +++++ .../2D}/OneWay2DGroundMovement.cs | 2 +- .../2D/OneWay2DGroundMovement.cs.meta | 11 +++++ .../2D}/OneWay2DMovementBase.cs | 2 +- .../2D/OneWay2DMovementBase.cs.meta | 11 +++++ .../2D}/TwoDimensionalMovementBase.cs | 2 +- .../2D}/TwoDimensionalMovementBase.cs.meta | 0 16 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 Implementations.meta rename 2D.meta => Implementations/2D.meta (100%) create mode 100644 Implementations/2D/OneDirectional2DAirMovement.cs rename 2D/OneWay2DAirMovement.cs.meta => Implementations/2D/OneDirectional2DAirMovement.cs.meta (100%) create mode 100644 Implementations/2D/OneDirectional2DGroundMovement.cs rename 2D/OneWay2DGroundMovement.cs.meta => Implementations/2D/OneDirectional2DGroundMovement.cs.meta (100%) create mode 100644 Implementations/2D/OneDirectional2DMovementBase.cs rename 2D/OneWay2DMovementBase.cs.meta => Implementations/2D/OneDirectional2DMovementBase.cs.meta (100%) rename {2D => Implementations/2D}/OneWay2DAirMovement.cs (94%) create mode 100644 Implementations/2D/OneWay2DAirMovement.cs.meta rename {2D => Implementations/2D}/OneWay2DGroundMovement.cs (92%) create mode 100644 Implementations/2D/OneWay2DGroundMovement.cs.meta rename {2D => Implementations/2D}/OneWay2DMovementBase.cs (81%) create mode 100644 Implementations/2D/OneWay2DMovementBase.cs.meta rename {2D => Implementations/2D}/TwoDimensionalMovementBase.cs (96%) rename {2D => Implementations/2D}/TwoDimensionalMovementBase.cs.meta (100%) diff --git a/Implementations.meta b/Implementations.meta new file mode 100644 index 0000000..c14cbc9 --- /dev/null +++ b/Implementations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15528ebd51d27d54398c55826710f23e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D.meta b/Implementations/2D.meta similarity index 100% rename from 2D.meta rename to Implementations/2D.meta diff --git a/Implementations/2D/OneDirectional2DAirMovement.cs b/Implementations/2D/OneDirectional2DAirMovement.cs new file mode 100644 index 0000000..c066506 --- /dev/null +++ b/Implementations/2D/OneDirectional2DAirMovement.cs @@ -0,0 +1,40 @@ +using Syntriax.Modules.Movement.ColliderTrigger; +using UnityEngine; + +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional +{ + public class OneDirectional2DAirMovement : OneDirectional2DMovementBase + { + protected override float moveValue { get; set; } = 0f; + protected IGroundTrigger groundTrigger = null; + + protected override void Start() + { + base.Start(); + groundTrigger = GetComponentInChildren(); + groundTrigger.OnTriggered.AddListener(OnGroundTrigger); + } + + private void OnGroundTrigger(bool isGrounded) + => CanTakeOver = !isGrounded; + + public override void ApplyMovement() + { + Vector2 velocity = rigid.velocity; + velocity.x += moveValue * Time.fixedDeltaTime; + + if (moveValue != 0f) + { + if (Mathf.Abs(velocity.x) > Mathf.Abs(moveValue)) + velocity.x = moveValue; + else if (Mathf.Abs(velocity.x - moveValue) > Mathf.Abs(moveValue)) + velocity.x += moveValue * Time.fixedDeltaTime; + } + + rigid.velocity = velocity; + } + + protected override void OnDeactivated() { } + protected override void OnActivated() { } + } +} diff --git a/2D/OneWay2DAirMovement.cs.meta b/Implementations/2D/OneDirectional2DAirMovement.cs.meta similarity index 100% rename from 2D/OneWay2DAirMovement.cs.meta rename to Implementations/2D/OneDirectional2DAirMovement.cs.meta diff --git a/Implementations/2D/OneDirectional2DGroundMovement.cs b/Implementations/2D/OneDirectional2DGroundMovement.cs new file mode 100644 index 0000000..3be80fd --- /dev/null +++ b/Implementations/2D/OneDirectional2DGroundMovement.cs @@ -0,0 +1,31 @@ +using Syntriax.Modules.Movement.ColliderTrigger; +using UnityEngine; + +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional +{ + public class OneDirectional2DGroundMovement : OneDirectional2DMovementBase + { + protected override float moveValue { get; set; } = 0f; + protected IGroundTrigger groundTrigger = null; + + protected override void Start() + { + base.Start(); + groundTrigger = GetComponentInChildren(); + groundTrigger.OnTriggered.AddListener(OnGroundTrigger); + } + + private void OnGroundTrigger(bool isGrounded) + => CanTakeOver = isGrounded; + + public override void ApplyMovement() + { + Vector2 velocity = rigid.velocity; + velocity.x = moveValue; + rigid.velocity = velocity; + } + + protected override void OnDeactivated() { } + protected override void OnActivated() { } + } +} diff --git a/2D/OneWay2DGroundMovement.cs.meta b/Implementations/2D/OneDirectional2DGroundMovement.cs.meta similarity index 100% rename from 2D/OneWay2DGroundMovement.cs.meta rename to Implementations/2D/OneDirectional2DGroundMovement.cs.meta diff --git a/Implementations/2D/OneDirectional2DMovementBase.cs b/Implementations/2D/OneDirectional2DMovementBase.cs new file mode 100644 index 0000000..3af4d9a --- /dev/null +++ b/Implementations/2D/OneDirectional2DMovementBase.cs @@ -0,0 +1,10 @@ +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional +{ + public abstract class OneDirectional2DMovementBase : TwoDimensionalMovementBase + { + protected abstract float moveValue { get; set; } + + public override void Move(float x = 0, float y = 0, float z = 0) + => moveValue = x * BaseSpeed * MovementMultiplier; + } +} diff --git a/2D/OneWay2DMovementBase.cs.meta b/Implementations/2D/OneDirectional2DMovementBase.cs.meta similarity index 100% rename from 2D/OneWay2DMovementBase.cs.meta rename to Implementations/2D/OneDirectional2DMovementBase.cs.meta diff --git a/2D/OneWay2DAirMovement.cs b/Implementations/2D/OneWay2DAirMovement.cs similarity index 94% rename from 2D/OneWay2DAirMovement.cs rename to Implementations/2D/OneWay2DAirMovement.cs index c25070c..463c2d8 100644 --- a/2D/OneWay2DAirMovement.cs +++ b/Implementations/2D/OneWay2DAirMovement.cs @@ -1,7 +1,7 @@ using Syntriax.Modules.Movement.ColliderTrigger; using UnityEngine; -namespace Syntriax.Modules.Movement.TwoDimensionalImplementations +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { public class OneWay2DAirMovement : OneWay2DMovementBase { diff --git a/Implementations/2D/OneWay2DAirMovement.cs.meta b/Implementations/2D/OneWay2DAirMovement.cs.meta new file mode 100644 index 0000000..a1d0e9a --- /dev/null +++ b/Implementations/2D/OneWay2DAirMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ccd6df43b281de34fb8ea893de8ec4c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D/OneWay2DGroundMovement.cs b/Implementations/2D/OneWay2DGroundMovement.cs similarity index 92% rename from 2D/OneWay2DGroundMovement.cs rename to Implementations/2D/OneWay2DGroundMovement.cs index f0d7154..544888e 100644 --- a/2D/OneWay2DGroundMovement.cs +++ b/Implementations/2D/OneWay2DGroundMovement.cs @@ -1,7 +1,7 @@ using Syntriax.Modules.Movement.ColliderTrigger; using UnityEngine; -namespace Syntriax.Modules.Movement.TwoDimensionalImplementations +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { public class OneWay2DGroundMovement : OneWay2DMovementBase { diff --git a/Implementations/2D/OneWay2DGroundMovement.cs.meta b/Implementations/2D/OneWay2DGroundMovement.cs.meta new file mode 100644 index 0000000..b60062a --- /dev/null +++ b/Implementations/2D/OneWay2DGroundMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7b798018f7cc444c92f7f17b0501bc7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D/OneWay2DMovementBase.cs b/Implementations/2D/OneWay2DMovementBase.cs similarity index 81% rename from 2D/OneWay2DMovementBase.cs rename to Implementations/2D/OneWay2DMovementBase.cs index 2883eb7..7a19b3a 100644 --- a/2D/OneWay2DMovementBase.cs +++ b/Implementations/2D/OneWay2DMovementBase.cs @@ -1,4 +1,4 @@ -namespace Syntriax.Modules.Movement.TwoDimensionalImplementations +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { public abstract class OneWay2DMovementBase : TwoDimensionalMovementBase { diff --git a/Implementations/2D/OneWay2DMovementBase.cs.meta b/Implementations/2D/OneWay2DMovementBase.cs.meta new file mode 100644 index 0000000..c060f75 --- /dev/null +++ b/Implementations/2D/OneWay2DMovementBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 842775d6c36b58f40a18f3d930e04173 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D/TwoDimensionalMovementBase.cs b/Implementations/2D/TwoDimensionalMovementBase.cs similarity index 96% rename from 2D/TwoDimensionalMovementBase.cs rename to Implementations/2D/TwoDimensionalMovementBase.cs index dfa3d20..fa7c5ed 100644 --- a/2D/TwoDimensionalMovementBase.cs +++ b/Implementations/2D/TwoDimensionalMovementBase.cs @@ -2,7 +2,7 @@ using Syntriax.Modules.Movement.State; using UnityEngine; using UnityEngine.Events; -namespace Syntriax.Modules.Movement.TwoDimensionalImplementations +namespace Syntriax.Modules.Movement.Implementations.TwoDimensional { [RequireComponent(typeof(Rigidbody2D))] public abstract class TwoDimensionalMovementBase : MonoBehaviour, IMovement diff --git a/2D/TwoDimensionalMovementBase.cs.meta b/Implementations/2D/TwoDimensionalMovementBase.cs.meta similarity index 100% rename from 2D/TwoDimensionalMovementBase.cs.meta rename to Implementations/2D/TwoDimensionalMovementBase.cs.meta