public void Save() { string saveDirectory = SaveUtils.GetCurrentSaveDataDir(); DeathRun.saveData.countSave.AboutToSaveGame(); DeathRun.saveData.playerSave.AboutToSaveGame(); try { var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, // Keeps our Vector3's etc from generating infinite references //PreserveReferencesHandling = PreserveReferencesHandling.Objects }; var saveDataJson = JsonConvert.SerializeObject(this, Formatting.Indented, settings); if (!Directory.Exists(saveDirectory)) { Directory.CreateDirectory(saveDirectory); } File.WriteAllText(Path.Combine(saveDirectory, DeathRun.SaveFile), saveDataJson); } catch (Exception e) { CattleLogger.GenericError(e); CattleLogger.Message("Failed"); } }
public void Load() { var path = Path.Combine(SaveUtils.GetCurrentSaveDataDir(), DeathRun.SaveFile); if (!File.Exists(path)) { CattleLogger.Message("Death Run data not found - using defaults"); setDefaults(); return; } try { var save = File.ReadAllText(path); var jsonSerializerSettings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, //PreserveReferencesHandling = PreserveReferencesHandling.Objects, }; //var json = JsonConvert.DeserializeObject<DeathRunSaveData>(save, jsonSerializerSettings); //this.exampleString = json.exampleString; //this.exampleData = json.exampleData; // This deserializes the whole saveData object all at once. DeathRun.saveData = JsonConvert.DeserializeObject <DeathRunSaveData>(save, jsonSerializerSettings); DeathRun.saveData.countSave.JustLoadedGame(); DeathRun.saveData.playerSave.JustLoadedGame(); // Special escape-pod re-adjustments EscapePod_FixedUpdate_Patch.JustLoadedGame(); DeathRunUtils.JustLoadedGame(); } catch (Exception e) { CattleLogger.GenericError(e); CattleLogger.Message("Death Run data not found - using defaults"); CattleLogger.Message(e.StackTrace); setDefaults(); } }
internal static string GetSaveFileDirectory() { return(Path.Combine(SaveUtils.GetCurrentSaveDataDir(), ModName)); }