/// <summary> /// Gets all the saved games and activates/deactivates the save buttons /// </summary> public void GetSaves(bool useLoadedSaves = true) { List <Button> buttons = null; List <SavedGame> savedGames = null; if (useLoadedSaves) { (buttons, savedGames) = SlotButtons.GetSaves(slotTemplateButton, canDelete: true); } else { (buttons, savedGames) = SlotButtons.GetSaves(slotTemplateButton, tempSavedGames, true); } foreach (Button slotButton in buttons) { int index = buttons.IndexOf(slotButton); Button deleteButton = buttons[index].GetComponentsInChildren <Button>(true).FirstOrDefault(x => x.gameObject.name == "DeleteButton"); SavedGame savedGame = savedGames.FirstOrDefault(x => x.Slot == index + 1); slotButton.onClick.AddListener(() => SaveGame(index + 1)); if (savedGame != null) { deleteButton.onClick.AddListener(() => DeleteSave(index + 1)); if (useLoadedSaves) { tempSavedGames[index] = savedGame; } } } }
/// <summary> /// Gets the saved games /// </summary> public void GetSaves() { var(buttons, savedGames) = SlotButtons.GetSaves(slotTemplateButton, canDelete: false); foreach (Button slotButton in buttons) { int index = buttons.IndexOf(slotButton); slotButton.onClick.AddListener(() => ImportSave(index + 1)); SavedGame savedGame = savedGames.FirstOrDefault(x => x.Slot == index + 1); if (savedGame != null) { tempSavedGames[index] = savedGame; } } }
/// <summary> /// Checks if any of the save slots exists and activates the save slots /// </summary> /// <param name="useLoadedSaves">If the loaded saves should be used</param> public void ManageSaves(bool useLoadedSaves = true) { List <Button> buttons; List <SavedGame> savedGames; if (useLoadedSaves) { (buttons, savedGames) = SlotButtons.GetSaves(slotTemplateButton, hideIfNoSave: true); } else { (buttons, savedGames) = SlotButtons.GetSaves(slotTemplateButton, TempSavedGames, hideIfNoSave: true); } foreach (Button slotButton in buttons) { int index = buttons.IndexOf(slotButton); Button deleteButton = slotButton.transform.GetComponentsInChildren <Button>(true).FirstOrDefault(x => x.gameObject.name == "DeleteButton"); TMP_Text timeStampText = slotButton.GetComponentsInChildren <TMP_Text>(true).FirstOrDefault(x => x.gameObject.name == "TimestampText"); SavedGame savedGame = savedGames.FirstOrDefault(x => x.Slot == index + 1); if (savedGame != null) { slotButton.onClick.AddListener(() => LoadGame(index + 1)); deleteButton.onClick.AddListener(() => DeleteSave(index + 1)); if (useLoadedSaves) { TempSavedGames[index] = savedGame; } } } if (savedGames.Count == 0) { noSavedGamesText.gameObject.SetActive(true); buttonsContainer.SetActive(false); } else { noSavedGamesText.gameObject.SetActive(false); buttonsContainer.SetActive(true); } }