IPlayerState IPlayerState.ProcessMovement(PlayerMovementRB player)
 {
     if (player.controlState == ControlState.CONTROLLABLE)
     {
         player.RotateToFace();
     }
     return this;
 }
        IPlayerState IPlayerState.ProcessMovement(PlayerMovementRB player)
        {
            if (player.controlState == ControlState.CONTROLLABLE)
            {
                // Move the player
                Vector3 velocityChange = player.directionVector - player.rb.velocity;
                velocityChange.x = Mathf.Clamp(velocityChange.x, -player.maxVelocityChange, player.maxVelocityChange);
                velocityChange.z = Mathf.Clamp(velocityChange.z, -player.maxVelocityChange, player.maxVelocityChange);
                velocityChange.y = 0;

                player.rb.AddForce(velocityChange, ForceMode.VelocityChange);
            }
            player.RotateToFace();
            return this;
        }