/// <summary> /// Await player input. Returns true when valid input is received. /// </summary> private bool StateWaitingForPlayer() { if (Input.GetKey(KeyCode.W)) { return(HandleMovement(Direction.S)); } else if (Input.GetKey(KeyCode.A)) { return(HandleMovement(Direction.W)); } else if (Input.GetKey(KeyCode.S)) { return(HandleMovement(Direction.N)); } else if (Input.GetKey(KeyCode.D)) { return(HandleMovement(Direction.E)); } else if (Input.GetKeyUp(KeyCode.Q)) { HandleRotation(RotateDirection.Left); } else if (Input.GetKeyUp(KeyCode.E)) { HandleRotation(RotateDirection.Right); } else if (Input.GetKeyUp(KeyCode.F)) { return(HandleInteraction()); } else if (Input.GetKeyDown(KeyCode.Escape)) { menuUI = pauseMenu; currentState = MovementStates.PlayerInMenu; pauseMenu.SetActive(true); } else if (Input.GetKeyUp(KeyCode.P)) { GameDataSerializer.SaveGame(); Debug.Log("Game Saved!"); } else if (Input.GetKeyDown(KeyCode.LeftShift)) { playerMovement.AcceptNextIndex(playerMovement.Index); currentState = MovementStates.MovingPlayer; return(true); } return(false); }