From cc2d7578d77ffe547ef47b22ff424f62a032206d Mon Sep 17 00:00:00 2001 From: fernaldyl <90769501+fernaldy112@users.noreply.github.com> Date: Fri, 14 Apr 2023 17:03:53 +0700 Subject: [PATCH] feat: main menu load game --- Assets/Scripts/MainMenu.cs | 3 ++ Assets/Scripts/Save/SaveHandler.cs | 53 ++++++++++++++++-------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/Assets/Scripts/MainMenu.cs b/Assets/Scripts/MainMenu.cs index 4a4192d..db3234e 100644 --- a/Assets/Scripts/MainMenu.cs +++ b/Assets/Scripts/MainMenu.cs @@ -6,6 +6,8 @@ using UnityEngine.SceneManagement; public class MainMenu : MonoBehaviour { public GameObject LoadPanel; + public SaveHandler saveHandler; + public void PlayGame() { SceneManager.LoadScene("Level_01"); } @@ -14,6 +16,7 @@ public class MainMenu : MonoBehaviour } public void LoadGame() { LoadPanel.SetActive(true); + saveHandler.LoadSaveSlots(); } public void Settings() { SceneManager.LoadScene("Settings"); diff --git a/Assets/Scripts/Save/SaveHandler.cs b/Assets/Scripts/Save/SaveHandler.cs index d261099..e96759c 100644 --- a/Assets/Scripts/Save/SaveHandler.cs +++ b/Assets/Scripts/Save/SaveHandler.cs @@ -18,35 +18,14 @@ public class SaveHandler : MonoBehaviour saveGameAgreement.SetActive(false); saveGameSlots.SetActive(true); - if (!Directory.Exists(Application.persistentDataPath + "/save/")) - { - Directory.CreateDirectory(Application.persistentDataPath + "/save/"); - } - - string[] files_str = Directory.GetFiles(Application.persistentDataPath + "/save/"); - Dictionary<int, Tuple<string, DateTime>> files = preprocessFileName(files_str); - - List<GameObject> slots = new List<GameObject> { - saveGameSlots.transform.Find("SaveSlot1").gameObject, - saveGameSlots.transform.Find("SaveSlot2").gameObject, - saveGameSlots.transform.Find("SaveSlot3").gameObject - }; - - for (int i=0; i<slots.Count; i++) - { - if (files.ContainsKey(i)) - { - slots[i].transform.Find("SaveName").gameObject.GetComponent<Text>().text = files[i].Item1; - slots[i].transform.Find("SaveDate").gameObject.GetComponent<Text>().text = "Last saved: " + files[i].Item2.ToString(); - } - } + LoadSaveSlots(); } public void OnSaveDisagreement() { saveGameAgreement.SetActive(false); Time.timeScale = 1; - inputHandler.setIsSaving(false); + inputHandler.setInactive(false); } public void OnSaveSlotSelection(int slotIdx) @@ -75,7 +54,7 @@ public class SaveHandler : MonoBehaviour } OnSaveGame(slotIdx, saveName); Time.timeScale = 1; - inputHandler.setIsSaving(false); + inputHandler.setInactive(false); } public void OnSaveInputBack() @@ -152,4 +131,30 @@ public class SaveHandler : MonoBehaviour return true; } + + public void LoadSaveSlots() + { + if (!Directory.Exists(Application.persistentDataPath + "/save/")) + { + Directory.CreateDirectory(Application.persistentDataPath + "/save/"); + } + + string[] files_str = Directory.GetFiles(Application.persistentDataPath + "/save/"); + Dictionary<int, Tuple<string, DateTime>> files = preprocessFileName(files_str); + + List<GameObject> slots = new List<GameObject> { + saveGameSlots.transform.Find("SaveSlot1").gameObject, + saveGameSlots.transform.Find("SaveSlot2").gameObject, + saveGameSlots.transform.Find("SaveSlot3").gameObject + }; + + for (int i = 0; i < slots.Count; i++) + { + if (files.ContainsKey(i)) + { + slots[i].transform.Find("SaveName").gameObject.GetComponent<Text>().text = files[i].Item1; + slots[i].transform.Find("SaveDate").gameObject.GetComponent<Text>().text = "Last saved: " + files[i].Item2.ToString(); + } + } + } } -- GitLab