public CollectionSaveData SaveInfo() { CollectionSaveData saveData = new CollectionSaveData(); for (int i = 0; i < map.Length; i++) //row { for (int j = 0; j < map[i].mapCol.Length; j++) //col { PlotSaveData temp = map[i].mapCol[j].SaveInfo(); temp.ID[0] = i; temp.ID[1] = j; string plotStringData = JsonUtility.ToJson(temp); //Debug.Log(plotStringData); saveData.plotData.Add(plotStringData); } } saveData.UpgradesUnlocked = UpgradesUnlocked; saveData.Events = new bool[3]; saveData.Events[0] = EnergyUp.activeSelf; saveData.Events[1] = EnergyDown.activeSelf; saveData.Events[2] = Growth.activeSelf; return(saveData); }
public void LoadInfo(CollectionSaveData info) { UpgradesUnlocked = info.UpgradesUnlocked; upgrades.LoadGame(UpgradesUnlocked); bool EnergyUpActive = info.Events[0]; bool EnergyDownActive = info.Events[1]; bool GrowthActive = info.Events[2]; for (int k = 0; k < info.plotData.Count; k++) { PlotSaveData temp = JsonUtility.FromJson <PlotSaveData>(info.plotData[k]); int i = temp.ID[0]; int j = temp.ID[1]; map[i].mapCol[j].LoadInfo(temp); } EnergyUp.SetActive(false); EnergyDown.SetActive(false); Growth.SetActive(false); if (EnergyUpActive == true) { EnergyUp.SetActive(true); } else if (EnergyDownActive) { EnergyDown.SetActive(true); } else if (GrowthActive) { Growth.SetActive(true); } }
public void SaveGame() { List <string> dataArray = new List <string>(); List <SlotSaveData> inventorySaveData = inventory.SaveInfo();//Inventory Save Data for (int i = 0; i < inventorySaveData.Count; i++) { string inventoryStringData = JsonUtility.ToJson(inventorySaveData[i]); dataArray.Add(inventoryStringData); } dataArray.Add("BREAK"); List <SlotSaveData> storageSaveData = storage.SaveInfo();//Storage Save Data for (int i = 0; i < storageSaveData.Count; i++) { string storageStringData = JsonUtility.ToJson(storageSaveData[i]); dataArray.Add(storageStringData); } dataArray.Add("BREAK"); List <FluctuationSaveData> itemDatabaseSaveData = itemDatabase.SaveInfo();//Item Save Data for (int i = 0; i < itemDatabaseSaveData.Count; i++) { string itemDatabaseStringData = JsonUtility.ToJson(itemDatabaseSaveData[i]); dataArray.Add(itemDatabaseStringData); } dataArray.Add("BREAK"); TickSaveData tickSaveData = tickAll.SaveInfo();//Day Save Data string tickStringData = JsonUtility.ToJson(tickSaveData); //Debug.Log(tickStringData); dataArray.Add(tickStringData); dataArray.Add("BREAK"); int tempBank = bank.SaveGame(); dataArray.Add(tempBank.ToString()); dataArray.Add("BREAK"); string mainMissionData = JsonUtility.ToJson(mainMissions.SaveGame()); dataArray.Add(mainMissionData.ToString()); dataArray.Add("BREAK"); string sideMissionData = JsonUtility.ToJson(sideMissions.SaveGame()); dataArray.Add(sideMissionData.ToString()); dataArray.Add("BREAK"); for (int i = 0; i < plotCollections.Length; i++) { CollectionSaveData collectionSaveData = plotCollections[i].SaveInfo();//Plot Save Data string plotStringData = JsonUtility.ToJson(collectionSaveData); dataArray.Add(plotStringData); //Debug.Log(plotStringData); dataArray.Add("BREAK"); } //write to file string tempPath = path + "/" + gameDataFileName; File.WriteAllLines(tempPath, dataArray); loadGameButton.interactable = true; }
public void LoadGame() { NewGame(); //load from file string filePath = path + "/" + gameDataFileName; if (File.Exists(filePath)) { string[] dataAsJson = File.ReadAllLines(filePath); //Stage 1 get Save Data List <SlotSaveData> inventorySaveData = new List <SlotSaveData>(); //Inventory Save Data List <SlotSaveData> storageSaveData = new List <SlotSaveData>(); //Storage Save Data List <FluctuationSaveData> itemDatabaseSaveData = new List <FluctuationSaveData>(); //Item Save Data TickSaveData tickSaveData = new TickSaveData(); //Day Save Data List <CollectionSaveData> collectionSaveData = new List <CollectionSaveData>(); int bankData = 0; MainMissionSaveData mainMissionSaveData = new MainMissionSaveData(); SideMissionManagerSaveData sideMissionSaveData = new SideMissionManagerSaveData(); int phase = 0; for (int i = 0; i < dataAsJson.Length; i++) { string line = dataAsJson[i]; if (line != "BREAK") { switch (phase) { case 0: //invent SlotSaveData tempI = JsonUtility.FromJson <SlotSaveData>(line); inventorySaveData.Add(tempI); break; case 1: //storage SlotSaveData tempS = JsonUtility.FromJson <SlotSaveData>(line); storageSaveData.Add(tempS); break; case 2: //items FluctuationSaveData tempIt = JsonUtility.FromJson <FluctuationSaveData>(line); itemDatabaseSaveData.Add(tempIt); break; case 3: //tick tickSaveData = JsonUtility.FromJson <TickSaveData>(line); break; case 4: //tick bankData = int.Parse(line); break; case 5: //Main Missions mainMissionSaveData = JsonUtility.FromJson <MainMissionSaveData>(line); break; case 6: //Side Missions sideMissionSaveData = JsonUtility.FromJson <SideMissionManagerSaveData>(line); break; default: //Plots e.g. anything thats not the first 4 fixed things CollectionSaveData tempC = JsonUtility.FromJson <CollectionSaveData>(line); collectionSaveData.Add(tempC); break; } } else { phase = phase + 1; } }//End for //Stage 2, load inventory.LoadInfo(inventorySaveData); storage.LoadInfo(storageSaveData); itemDatabase.LoadInfo(itemDatabaseSaveData); tickAll.LoadInfo(tickSaveData); bank.LoadGame(bankData); mainMissions.LoadGame(mainMissionSaveData); sideMissions.LoadGame(sideMissionSaveData); for (int i = 0; i < plotCollections.Length; i++) { plotCollections[i].LoadInfo(collectionSaveData[i]); } } }