using Syntriax.Modules.Trigger; using UnityEngine; namespace Syntriax.Modules.Movement.Implementations { [RequireComponent(typeof(Rigidbody2D))] public class GroundMovement1D : MovementBase1D { protected override float moveValue { get; set; } = 0f; protected IGroundTrigger groundTrigger = null; protected Rigidbody2D rigid = null; private void Awake() => CanTakeOver = true; protected override void Start() { base.Start(); rigid = GetComponent(); groundTrigger = GetComponentInChildren(); if (groundTrigger != null) { groundTrigger.OnTriggered += OnGroundTrigger; CanTakeOver = false; } } 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() { } } }