Example #1
0
        public static void ReloadPerSaveSettings()
        {
            var player = Game.Instance?.Player;

            if (player == null || Game.Instance.SaveManager.CurrentState == SaveManager.State.Loading)
            {
                return;
            }
            Mod.Debug($"reloading per save settings from Player.SettingsList[{PerSaveKey}]");
            if (player.SettingsList.TryGetValue(PerSaveKey, out var obj) && obj is string json)
            {
                try {
                    cachedPerSave = JsonConvert.DeserializeObject <PerSaveSettings>(json);
                    Mod.Debug($"read successfully from Player.SettingsList[{PerSaveKey}]");
                }
                catch (Exception e) {
                    Mod.Error($"failed to read from Player.SettingsList[{PerSaveKey}]");
                    Mod.Error(e);
                }
            }
            if (cachedPerSave == null)
            {
                Mod.Warn("per save settings not found, creating new...");
                cachedPerSave = new PerSaveSettings {
                };
                SavePerSaveSettings();
            }
        }
Example #2
0
 public static void ClearCachedPerSave() => cachedPerSave = null;