/// <summary> /// Save local settings to disk. /// </summary> public void Save() { var values = new SettingsValues(); FillPreset(values, true); Serialize(SettingsPath, values); }
/// <summary> /// Save a copy of current values which can be restored later. /// </summary> public void SaveDefaults() { if (defaultValues == null) { defaultValues = new SettingsValues(); } FillPreset(defaultValues, true); }
/// <summary> /// Deserialize local values from disk. Be sure to save defaults before if needed. /// </summary> public void LoadLocalValues() { var settings = new SettingsValues(); string path = SettingsPath; if (TryDeserialize(path, ref settings) && IsCompatible(settings)) { // Apply local values ApplyPreset(settings); } else { // Save to disk default values Save(); Debug.LogFormat("Settings for {0} are missing or incompatible with current version. " + "New settings have been recreated with default values", mod.Title); } }
/// <summary> /// Deserialize local values from disk. Be sure to save defaults before if needed. /// </summary> public void LoadLocalValues() { var settings = new SettingsValues(); Directory.CreateDirectory(mod.ConfigurationDirectory); if (File.Exists(LegacySettingsPath)) { ModManager.MoveOldConfigFile(LegacySettingsPath, SettingsPath); } if (TryDeserialize(SettingsPath, ref settings) && IsCompatible(settings)) { // Apply local values ApplyPreset(settings); } else { // Save to disk default values Save(); Debug.LogFormat("Settings for {0} are missing or incompatible with current version. " + "New settings have been recreated with default values", mod.Title); } }