public void BackupSave(PlayerSave save) { string path = System.IO.Path.Combine(Application.persistentDataPath, "Saves", save.name + " - Backup "); int i = 1; while (File.Exists(path + i)) { i++; } path = path + i; File.WriteAllText(path, JsonUtility.ToJson(save)); saves.Add(save); paths.Add(path); SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>(); icon.save = save; icon.path = path; icon.index = icons.Count; icon.handler = this; icons.Add(icon); icon.transform.SetSiblingIndex(icon.transform.parent.childCount - 2); }
public void AddSave() { string name = inputField.text.Trim(); string path = System.IO.Path.Combine(Application.persistentDataPath, "Saves", name); inputField.transform.parent.GetComponentInChildren <GUIWindowScripts>().ToggleActive(); if (name == "" || name == "TestSave" || paths.Contains(path) || name.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) > -1) { return; } var save = CreateSave(name, null, this.resourcePath); if (save.resourcePath == "") { save.resourcePath = "main"; } saves.Add(save); paths.Add(path); SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>(); icon.save = save; icon.path = path; icon.index = icons.Count; icon.handler = this; icons.Add(icon); icon.transform.SetAsFirstSibling(); }
public void Migrate() { var save = saves[indexToMigrate]; switch (save.version) { case "Beta 0.0.0": var mission = save.missions.Find(m => m.name == "Truthful Revelation?"); if (mission != null) { mission.name = "Truthful Revelation"; } File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save)); SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true); break; case "Alpha 4.0.0": case "Alpha 4.1.0": case "Alpha 4.1.1": case "Alpha 4.2.0": case "Alpha 4.3.0": // attempt to add Sukrat to the party list if (!save.unlockedPartyIDs.Contains("sukrat")) { save.unlockedPartyIDs.Add("sukrat"); } save.version = VersionNumberScript.version; for (int i = 0; i < save.characters.Length; i++) { if (save.characters[i].ID == "sukrat") { var party = save.characters[i].partyData = new WorldData.PartyData(); party.attackDialogue = "DESTRUCTION!"; party.defendDialogue = "Falling back!"; party.collectDialogue = "I'm on it."; party.buildDialogue = "Building!"; party.followDialogue = "Following!"; } } File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save)); SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true); break; case "Alpha 1.0.0": case "Alpha 2.0.0": case "Alpha 2.1.0": save.version = VersionNumberScript.version; save.reputation = 0; migratedTimePlayed = save.timePlayed; save.timePlayed = 0; File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save)); SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true); break; } }
void LoadTestSave() { var path = Application.streamingAssetsPath + "\\Sectors\\TestWorld"; var savePath = Application.persistentDataPath + "\\Saves\\TestSave"; if (File.Exists(savePath)) { File.Delete(savePath); } SaveMenuHandler.CreateSave("TestSave"); SectorManager.testJsonPath = path; SectorManager.testResourcePath = originalReadPath; SaveMenuIcon.LoadSaveByPath(savePath, false); }
void InitializeSaves() { saveView.SetActive(true); selectIndicatorText.text = "SELECT SAVE"; string curpath = null; var CurrentSavePath = System.IO.Path.Combine(Application.persistentDataPath, "CurrentSavePath"); if (File.Exists(CurrentSavePath)) { curpath = File.ReadAllText(CurrentSavePath); } for (int i = 0; i < saves.Count; i++) { if (saves[i] == null) { continue; } SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>(); icon.GetComponent <Image>().sprite = episodeSprites[Mathf.Min(Mathf.Max(1, saves[i].episode), episodeSprites.Length) - 1]; icon.save = saves[i]; icon.index = i; icon.handler = this; icon.path = paths[i]; icons.Add(icon); if (resourcePath == "") { if (icon.path == curpath || i == 0) { icon.transform.SetAsFirstSibling(); } else { icon.transform.SetSiblingIndex(1); } } else { icon.transform.SetSiblingIndex(0); } if ((resourcePath == "" && saves[i].resourcePath != null && !saves[i].resourcePath.Contains("main") && saves[i].resourcePath != "") || (resourcePath != "" && saves[i].resourcePath != resourcePath)) { icon.gameObject.SetActive(false); } } }