public static void Postfix(SaveSlotType gameMode, string name) { string data = SaveDataManager.Serialize(); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, "global" + SaveDataManager.DATA_FILENAME_SUFFIX, data); SaveDataManager.Clear(); }
private static void Postfix(string name) { string json = SaveGameSlots.LoadDataFromSlot(name, SAVE_SLOT_NAME); if (string.IsNullOrEmpty(json)) { return; } HungerRevamped hungerRevamped = HungerRevamped.Instance; JSON.Load(json).Populate(saveDataProxy); hungerRevamped.storedCalories = saveDataProxy.storedCalories + Tuning.defaultStoredCalories; hungerRevamped.wellFedHungerScore = saveDataProxy.wellFedHungerScore; hungerRevamped.deferredFoodPoisonings.Clear(); if (saveDataProxy.deferredFoodPoisonings != null) { hungerRevamped.deferredFoodPoisonings.AddRange(saveDataProxy.deferredFoodPoisonings); } Hunger hunger = GameManager.GetHungerComponent(); hunger.m_CurrentReserveCalories = Mathf.Min(hunger.m_CurrentReserveCalories, hunger.m_MaxReserveCalories); }
public static void Postfix(SaveSlotType gameMode, string name) { SaveProxy proxy = new SaveProxy(); proxy.data = MelonLoader.TinyJSON.JSON.Dump(ModHealthManager.GetData()); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, "ModHealthManager", MelonLoader.TinyJSON.JSON.Dump(proxy)); }
public static void Postfix(string name) { string serializedProxy = SaveGameSlots.LoadDataFromSlot(name, "ModHealthManager"); SaveProxy proxy = Utils.DeserializeObject <SaveProxy>(serializedProxy); ModHealthManager.SetData(GetData(proxy)); }
internal static void LoadRepairs(string saveName, string sceneSaveName) { System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); repairedContainers.Clear(); string saveProxyData = SaveGameSlots.LoadDataFromSlot(saveName, sceneSaveName + REPAIRED_CONTAINERS_SUFFIX); RepairedContainers loadedRepairedContainers = DeserializeSaveProxy <RepairedContainers>(saveProxyData); if (loadedRepairedContainers == null) { loadedRepairedContainers = new RepairedContainers(); } foreach (RepairedContainer eachRepairedContainer in loadedRepairedContainers.containers) { if (eachRepairedContainer.scene == GameManager.m_ActiveScene) { RestoreRepairedContainer(eachRepairedContainer); } } stopwatch.Stop(); Log("Loaded " + loadedRepairedContainers.containers.Count + " repair(s) for scene '" + GameManager.m_ActiveScene + "' in " + stopwatch.ElapsedMilliseconds + " ms"); }
static void SaveGameSystem_LoadSceneData_Prefix(string name, string sceneSaveName) { $"Loading scene {name}:{sceneSaveName}".logDbg(); string text = SaveGameSlots.LoadDataFromSlot(name, $"{sceneSaveName}-{savename}"); initContainersInfo(text == null? null: JsonConvert.DeserializeObject <MovedContainersInfo>(text)); }
static void SaveGameSystem_SaveSceneData_Prefix(SaveSlotType gameMode, string name, string sceneSaveName) { $"Saving scene {name}:{sceneSaveName}".logDbg(); string text = JsonConvert.SerializeObject(info); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, $"{sceneSaveName}-{savename}", text); }
static void SaveGameSystem_RestoreGlobalData_Prefix(string name) { $"SaveGameSystem.RestoreGlobalData {name}".logDbg(); string text = SaveGameSlots.LoadDataFromSlot(name, savename); string containerType = text == null? null: JsonConvert.DeserializeObject <GlobalSaveData>(text).pickedContainerType; pickUpContainer(containerType); }
public static void Postfix(SaveSlotType gameMode, string name) { SaveProxy proxy = new SaveProxy(); proxy.data = Utils.SerializeObject(ModHealthManager.GetData()); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, "ModHealthManager", Utils.SerializeObject(proxy)); }
internal static void SaveData(SaveSlotType gameMode, string name) { string data = JSON.Dump(MD, EncodeOptions.NoTypeHints); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name + "d", SAVE_NAME, data); data = JSON.Dump(MBD, EncodeOptions.NoTypeHints); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name + "b", SAVE_NAME, data); }
internal static void LoadData(string name) { string data = SaveGameSlots.LoadDataFromSlot(name, SAVE_FILE_NAME); if (data != null) { FishingHoles.deserialize(data); } }
internal static void SaveRepairs(SaveSlotType gameMode, string saveName, string sceneSaveName) { string saveProxyData = Utils.SerializeObject(new SaveProxy() { data = Utils.SerializeObject(repairedContainers) }); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, saveName, sceneSaveName + REPAIRED_CONTAINERS_SUFFIX, saveProxyData); }
static void SaveGameSystem_SaveGlobalData_Postfix(SaveSlotType gameMode, string name) { $"SaveGameSystem.SaveGlobalData {name}".logDbg(); string text = JsonConvert.SerializeObject(new GlobalSaveData() { pickedContainerType = pickedContainerType }); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, savename, text); }
internal static void SaveData(SaveSlotType gameMode, string saveSlotName) { SaveData saveData = new SaveData(); saveData.PreferredStruggleWeapon = PreferredStruggleWeaponId; string json = Utils.SerializeObject(saveData); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, saveSlotName, SAVE_SLOT_NAME, json); }
public static void Postfix(string name) { string serializedProxy = SaveGameSlots.LoadDataFromSlot(name, "ModHealthManager"); SaveProxy proxy = new SaveProxy(); if (!string.IsNullOrEmpty(serializedProxy)) { proxy = MelonLoader.TinyJSON.JSON.Load(serializedProxy).Make <SaveProxy>(); } ModHealthManager.SetData(GetData(proxy)); }
private static void Postfix(SaveSlotType gameMode, string name) { HungerRevamped hungerRevamped = HungerRevamped.Instance; saveDataProxy.storedCalories = hungerRevamped.storedCalories - Tuning.defaultStoredCalories; saveDataProxy.wellFedHungerScore = hungerRevamped.wellFedHungerScore; saveDataProxy.deferredFoodPoisonings = hungerRevamped.deferredFoodPoisonings.ToArray(); string json = JSON.Dump(saveDataProxy, EncodeOptions.NoTypeHints); SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, SAVE_SLOT_NAME, json); }
public static void Prefix(string name) { //return; //Logger.LogWarning("Loading data from slot '{0}' for scene '{1}'", name, "global"); string filename = "global" + SaveDataManager.DATA_FILENAME_SUFFIX; //Logger.Log("Filename: '{0}'", filename); string text = SaveGameSlots.LoadDataFromSlot(name, filename); //if (text is null) Logger.LogError("Found no data in the slot!"); //else Logger.Log(text); SaveDataManager.Deserialize(text); }
public static void Postfix(SaveSlotType gameMode, string name) { //Logger.LogWarning("Saving data to slot '{0}' for scene '{1}' in '{2}' mode", name, "global", gameMode); string filename = "global" + SaveDataManager.DATA_FILENAME_SUFFIX; //Logger.Log("Filename: '{0}'", filename); string data = SaveDataManager.Serialize(); //if (data != null) Logger.LogWarning(data); //else Logger.LogError("Data to save was null!"); bool globalSuccess = SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, filename, data); //Logger.Log(globalSuccess.ToString()); SaveDataManager.Clear(); }
internal static void LoadData(string saveSlotName) { string json = SaveGameSlots.LoadDataFromSlot(saveSlotName, SAVE_SLOT_NAME); if (string.IsNullOrEmpty(json)) { PreferredStruggleWeaponId = 0; return; } SaveData saveData = Utils.DeserializeObject <SaveData>(json); PreferredStruggleWeaponId = saveData.PreferredStruggleWeapon; }
static void dumpSaveSlot(string slotName) { if (SaveGameSlots.GetSaveSlotFromName(slotName) is not SlotData slotData) { return; } foreach (var key in slotData.m_Dict.Keys) { string slotStr = SaveGameSlots.LoadDataFromSlot(slotName, key); string slotStrFormatted = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(slotStr), new JsonSerializerSettings() { Formatting = Formatting.Indented }); slotStrFormatted.saveToFile($"{PersistentDataPath.m_Path}\\saves-dump\\{slotName}-{key}.json"); } }
internal static void LoadData(string name) { FAD.Clear(); fireFixed.Clear(); string data = SaveGameSlots.LoadDataFromSlot(name, SAVE_NAME); if (!string.IsNullOrEmpty(data)) { MelonLogger.Log("JSON loaded " + data); var foo = JSON.Load(data); foreach (var entry in foo as ProxyObject) { FireAddonsData lFAD = new FireAddonsData(); entry.Value.Populate(lFAD); FAD.Add(entry.Key, lFAD); } } }
internal static void LoadData(string name) { MD.Clear(); MBD.Clear(); string data = SaveGameSlots.LoadDataFromSlot(name + "d", SAVE_NAME); if (!string.IsNullOrEmpty(data)) { //MelonLogger.Log("JSON loaded " + data); var foo = JSON.Load(data); foreach (var entry in foo as ProxyObject) { MooseData lMD = new MooseData(); entry.Value.Populate(lMD); MD.Add(entry.Key, lMD); } } data = SaveGameSlots.LoadDataFromSlot(name + "b", SAVE_NAME); if (!string.IsNullOrEmpty(data)) { //MelonLogger.Log("JSON loaded " + data); var foo = JSON.Load(data); foreach (var entry in foo as ProxyObject) { MooseBagData lMBD = new MooseBagData(); entry.Value.Populate(lMBD); MBD.Add(entry.Key, lMBD); } } // look for items in player inverntory and apply stats Inventory inventoryComponent = GameManager.GetInventoryComponent(); foreach (GearItemObject item in inventoryComponent.m_Items) { GearItem gi = item; string guid = Utils.GetGuidFromGameObject(gi.gameObject); if (!string.IsNullOrEmpty(guid) && MD.ContainsKey(guid)) { applyStats(gi, true); } } }
public static void Postfix(SaveGameSystem __instance, string name, string sceneSaveName) { if (InterfaceManager.IsMainMenuActive() || (GameManager.IsOutDoorsScene(GameManager.m_ActiveScene) && !RemoveClutter.notReallyOutdoors.Contains(GameManager.m_ActiveScene))) { Debug.Log("[remove-clutter] " + GameManager.m_ActiveScene + " is outdoor scene, mod disabled."); return; } string text = SaveGameSlots.LoadDataFromSlot(name, sceneSaveName); SceneSaveGameFormat saveGameFormat = Utils.DeserializeObject <SceneSaveGameFormat>(text); RemoveClutter.sceneBreakDownData = saveGameFormat.m_BreakDownObjectsSerialized; //Debug.Log(RemoveClutter.sceneBreakDownData); RemoveClutter.PatchSceneObjects(); RemoveClutter.PatchSceneDecals(); BreakDown.DeserializeAllAdditive(RemoveClutter.sceneBreakDownData); }
static void SaveGameSlots_DeleteSlot_Postfix(SlotData slotData) { $"Deleting save slot {slotData.m_Name}".logDbg(); if (!Main.config.removeCustomSavesWithOriginal) { return; } $"Trying to delete linked slots".logDbg(); List <string> linksToRemove = new(); foreach (var link in slotsConfig.originalSlots) { if (link.Value == slotData.m_Name) { linksToRemove.Add(link.Key); SaveGameSlots.DeleteSlot(link.Key); } } linksToRemove.ForEach(removeSlotInfo); updateSlots(SaveGameSlots.GetSaveSlotTypeFromName(slotData.m_Name)); }
public static void Prefix(string name) { string text = SaveGameSlots.LoadDataFromSlot(name, "global" + SaveDataManager.DATA_FILENAME_SUFFIX); SaveDataManager.Deserialize(text); }
internal static void SaveData(SaveSlotType gameMode, string name) { SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, SAVE_FILE_NAME, FishingHoles.serialize()); }