using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.SceneManagement; public class PauseMenu : MonoBehaviour { public GameObject pauseMenuUI; public GameObject settingsMenuUI; public GameObject pausePanel; public GameObject saveGameText; Animator animator; private void Awake() { animator = GetComponent(); } public void OnEscapedPressed(InputAction.CallbackContext context) { if (context.started) { ResumeOrPauseGame(GameManager.GameIsPaused); } } private void ResumeOrPauseGame(bool resume) { if (resume) { ResumeWithMenu(); } else { PauseWithMenu(); } } private void ResumeWithMenu() { // TODO make it dynamic (whichever UI is activ set it to false when unpaused) GameManager.ResumeGame(); pausePanel.SetActive(false); } private void PauseWithMenu() { GameManager.PauseGame(); settingsMenuUI.SetActive(false); pauseMenuUI.SetActive(true); pausePanel.SetActive(true); } public void OnResumeClicked() { ResumeWithMenu(); } public void OnGameSaveClicked() { PlayerController playerController = GameObject.Find("Player").GetComponent(); Inventory playerInventory = GameObject.Find("Player").GetComponent(); SaveSystem.SavePlayer(new SaveDataPlayer(playerController, playerInventory)); GameManager gameManager= GameObject.Find("GameManager").GetComponent(); SaveSystem.SaveMapState(new SaveDataMap(gameManager.destroyedTiles, gameManager.generateTileMap.seed.Value, gameManager.GetComponent().GetSaveData())); animator.SetTrigger("GameSaved"); } public void OnSettingsSaveClicked() { animator.SetTrigger("GameSettingsSaved"); } public void OnGamedLoaded() { animator.SetTrigger("GameLoaded"); } public void OnMenuClicked() { } public void OnExitClicked() { GameManager.ResumeGame(); SceneManager.LoadScene("MainMenu"); } }