using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { public class WalkingState : IStateMachine { private bool _previousIsPickedUpAnything; public void EnterState(TycoonPlayer character) { _previousIsPickedUpAnything = character.TycoonPickupHandler.IsPickedUpAnything(); character.SpineController.PlayAnimation(_previousIsPickedUpAnything ? TycoonPlayerSpineAnimation.Serving : TycoonPlayerSpineAnimation.Walking, true); } public void UpdateState(TycoonPlayer character) { if (character.TycoonPickupHandler.IsPickedUpAnything() != _previousIsPickedUpAnything) { EnterState(character); } else if (character.IsMakingCocktail || character.IsCleaningFloor || character.IsCleaningTable || character.IsPumping) { character.StateMachineController.TransitionToState(character.InteractionState, character); } else if (!character.TycoonMovement.IsMoving) { character.StateMachineController.TransitionToState(character.IdleState, character); } } public void ExitState(TycoonPlayer character) { } } }