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(); } }
public static void ClearCachedPerSave() => cachedPerSave = null;