using BITKit.Entities; using BITKit.StateMachine; using Lightbug.CharacterControllerPro.Core; using UnityEngine; namespace BITFALL.Entities.Player.Movement.States { public abstract class PlayerCharacterState : IEntityMovementState { [SerializeField] protected PlayerCharacterController characterController; [SerializeField] protected CharacterActor actor; public bool Enabled { get; set; } public virtual void Initialize() { } public virtual void OnStateEntry(IState old) { } public virtual void OnStateUpdate(float deltaTime) { } public virtual void OnStateExit(IState old, IState newState) { } public virtual void UpdateVelocity(ref Vector3 currentVelocity,float deltaTime) { } public virtual void UpdateRotation(ref Quaternion currentRotation,float deltaTime) { } public virtual void BeforeUpdateMovement(float deltaTime) { } public virtual void AfterUpdateMovement(float deltaTime) { } public virtual void ExecuteCommand(T command) { } } }