Beispiel #1
0
            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));
            }
Beispiel #2
0
            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);
            }
Beispiel #3
0
        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));
        }
Beispiel #5
0
            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);
            }
Beispiel #6
0
        internal static void LoadData(string name)
        {
            string data = SaveGameSlots.LoadDataFromSlot(name, SAVE_FILE_NAME);

            if (data != null)
            {
                FishingHoles.deserialize(data);
            }
        }
Beispiel #7
0
            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);
        }
Beispiel #9
0
        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;
        }
Beispiel #10
0
        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");
            }
        }
Beispiel #11
0
        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);
                }
            }
        }
Beispiel #12
0
        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);
                }
            }
        }
Beispiel #13
0
            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);
            }
Beispiel #14
0
        public static void Prefix(string name)
        {
            string text = SaveGameSlots.LoadDataFromSlot(name, "global" + SaveDataManager.DATA_FILENAME_SUFFIX);

            SaveDataManager.Deserialize(text);
        }