CapersProject/Assets/02.Scripts/Character/Player/Tycoon/State/WalkingState.cs
Nam Tae Gun 7848033d4e 0.3.5.3
2024-12-02 10:48:44 +09:00

40 lines
1.3 KiB
C#

using BlueWater.Interfaces;
namespace BlueWater.Players.Tycoons
{
public class WalkingState : IStateMachine<TycoonPlayer>
{
private bool _previousIsPickedUpAnything;
public void EnterState(TycoonPlayer character)
{
_previousIsPickedUpAnything = character.TycoonPickupHandler.IsPickedUpAnything();
float animationSpeed = character.TycoonMovement.MoveSpeed / 3f;
character.SpineController.PlayAnimation(_previousIsPickedUpAnything ?
TycoonPlayerSpineAnimation.Serving : TycoonPlayerSpineAnimation.Walking,
true, speed:animationSpeed);
}
public void UpdateState(TycoonPlayer character)
{
if (character.TycoonPickupHandler.IsPickedUpAnything() != _previousIsPickedUpAnything)
{
EnterState(character);
}
else if (character.IsInteracting())
{
character.StateMachineController.TransitionToState(character.InteractionState, character);
}
else if (!character.TycoonMovement.IsMoving)
{
character.StateMachineController.TransitionToState(character.IdleState, character);
}
}
public void ExitState(TycoonPlayer character)
{
}
}
}