void IPlayerState.EnterState(PlayerMovementRB player)
 {
     player.anim.SetBool("Falling", true);
     player.SetCrouching(true);
     // Minimum friction so you don't stick to walls while falling
     player.col.material.dynamicFriction = 0f;
 }
 void IPlayerState.EnterState(PlayerMovementRB player)
 {
     // TODO manually set the player's Y-position
     //player.rb.useGravity = false;
     //jumpTimer.StartTiming();
     if (player.controlState == ControlState.CONTROLLABLE)
     {
         player.SetCrouching(false);
         player.anim.SetBool("Falling", true);
         player.col.material.dynamicFriction = 0f;
         player.rb.AddForce(jumpForce, ForceMode.VelocityChange);
     }
 }
 void IPlayerState.EnterState(PlayerMovementRB player)
 {
     player.anim.SetFloat("Speed", 0f);
     player.SetCrouching(true);
 }
 void IPlayerState.EnterState(PlayerMovementRB player)
 {
     player.anim.SetFloat("Speed", player.currentSpeed);
     player.SetCrouching(false);
 }
 void IPlayerState.EnterState(PlayerMovementRB player)
 {
     player.SetCrouching(true);
 }