34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using BlueWater.Interfaces;
|
|
|
|
namespace BlueWater.Npcs.Crews.Server
|
|
{
|
|
public class IdleState : IStateMachine<ServerCrew>
|
|
{
|
|
private bool _previousIsServing;
|
|
|
|
public virtual void EnterState(ServerCrew character)
|
|
{
|
|
_previousIsServing = character.IsServing;
|
|
character.SpineController.PlayAnimation(_previousIsServing ? CrewSpineAnimation.ServingIdle : CrewSpineAnimation.Idle, true);
|
|
}
|
|
|
|
public virtual void UpdateState(ServerCrew character)
|
|
{
|
|
if (character.IsMoving)
|
|
{
|
|
character.StateMachineController.TransitionToState(character.WalkingState, character);
|
|
}
|
|
|
|
if (character.IsServing == _previousIsServing) return;
|
|
|
|
_previousIsServing = character.IsServing;
|
|
character.SpineController.PlayAnimation(_previousIsServing ? CrewSpineAnimation.ServingIdle : CrewSpineAnimation.Idle, true);
|
|
}
|
|
|
|
public virtual void ExitState(ServerCrew character)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|