public override void HandleMoveRightInput() { if (MovementState == CharacterMovementStates.Idle && IsFacingRight) { MovementState = CharacterMovementStates.Walking; character.SetSprite(SpriteFactory.GetCharacterWalkingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject)); } else if (MovementState == CharacterMovementStates.Walking && IsCollidingWithPushableObject) { MovementState = CharacterMovementStates.Pushing; character.SetSprite(SpriteFactory.GetCharacterPushingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right)); } else if (MovementState == CharacterMovementStates.Idle && !IsFacingRight) { MovementState = CharacterMovementStates.Idle; character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject)); } else if (MovementState == CharacterMovementStates.Walking && !IsFacingRight) { MovementState = CharacterMovementStates.Idle; character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject)); } else if (MovementState == CharacterMovementStates.Pushing && IsFacingRight) { MovementState = CharacterMovementStates.Pushing; } else if (MovementState == CharacterMovementStates.Pushing && !IsFacingRight) { MovementState = CharacterMovementStates.Idle; character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject)); } else if (MovementState == CharacterMovementStates.Jumping) { MovementState = CharacterMovementStates.Jumping; character.SetSprite(SpriteFactory.GetCharacterJumpingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject)); IsInAir = true; } IsFacingRight = true; }