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)); }
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); }
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"); }
public static void Postfix(string name) { string serializedProxy = SaveGameSlots.LoadDataFromSlot(name, "ModHealthManager"); SaveProxy proxy = Utils.DeserializeObject <SaveProxy>(serializedProxy); ModHealthManager.SetData(GetData(proxy)); }
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); }
internal static void LoadData(string name) { string data = SaveGameSlots.LoadDataFromSlot(name, SAVE_FILE_NAME); if (data != null) { FishingHoles.deserialize(data); } }
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)); }
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); }
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); }
public static void Prefix(string name) { string text = SaveGameSlots.LoadDataFromSlot(name, "global" + SaveDataManager.DATA_FILENAME_SUFFIX); SaveDataManager.Deserialize(text); }