internal static BS_Utils.Utilities.Config config = new BS_Utils.Utilities.Config("CountersPlus"); //Conflicts with CountersPlus.Config POG /// <summary> /// Load Counters+ settings from config. /// Automatically generates any missing settings with their defaults found in the ConfigDefaults class. /// </summary> public static MainConfigModel LoadSettings() { if (!File.Exists(Path.Combine(BeatSaber.UserDataPath, "CountersPlus.ini"))) { File.Create(Path.Combine(BeatSaber.UserDataPath, "CountersPlus.ini")); } MainConfigModel model = new MainConfigModel(); model = (MainConfigModel)DeserializeFromConfig(model, model.DisplayName); try { //For adding new Counters, assign your ConfigModel here, using the DeserializeFromConfig function. model.missedConfig = DeserializeFromConfig(model.missedConfig, model.missedConfig.DisplayName) as MissedConfigModel; model.noteConfig = DeserializeFromConfig(model.noteConfig, model.noteConfig.DisplayName) as NoteConfigModel; model.progressConfig = DeserializeFromConfig(model.progressConfig, model.progressConfig.DisplayName) as ProgressConfigModel; model.scoreConfig = DeserializeFromConfig(model.scoreConfig, model.scoreConfig.DisplayName) as ScoreConfigModel; model.speedConfig = DeserializeFromConfig(model.speedConfig, model.speedConfig.DisplayName) as SpeedConfigModel; model.cutConfig = DeserializeFromConfig(model.cutConfig, model.cutConfig.DisplayName) as CutConfigModel; model.spinometerConfig = DeserializeFromConfig(model.spinometerConfig, model.spinometerConfig.DisplayName) as SpinometerConfigModel; model.pbConfig = DeserializeFromConfig(model.pbConfig, model.pbConfig.DisplayName) as PBConfigModel; model.notesLeftConfig = DeserializeFromConfig(model.notesLeftConfig, model.notesLeftConfig.DisplayName) as NotesLeftConfigModel; model.failsConfig = DeserializeFromConfig(model.failsConfig, model.failsConfig.DisplayName) as FailConfigModel; } catch (Exception e) { if (e.GetType() != typeof(NullReferenceException)) { Plugin.Log(e.ToString(), LogInfo.Error); } } Plugin.Log("Config loaded!", LogInfo.Notice); return(model); }
internal static void ResetSettings(MainConfigModel inSettings, out MainConfigModel settings) { settings = inSettings; settings.Enabled = true; settings.DisableMenus = false; settings.ComboOffset = 0.2f; settings.MultiplierOffset = 0.4f; try { ResetSetting(settings.missedConfig, true, ICounterPositions.BelowCombo, 0); } catch { settings.missedConfig = new MissedConfigModel(); settings.noteConfig = new NoteConfigModel(); settings.progressConfig = new ProgressConfigModel(); settings.scoreConfig = new ScoreConfigModel(); settings.speedConfig = new SpeedConfigModel(); settings.cutConfig = new CutConfigModel(); ResetSetting(settings.missedConfig, true, ICounterPositions.BelowCombo, 0); } ResetSetting(settings.noteConfig, true, ICounterPositions.BelowCombo, 1); ResetSetting(settings.progressConfig, true, ICounterPositions.BelowEnergy, 0); ResetSetting(settings.scoreConfig, true, ICounterPositions.BelowMultiplier, 0); ResetSetting(settings.speedConfig, false, ICounterPositions.AboveMultiplier, 0); ResetSetting(settings.cutConfig, false, ICounterPositions.AboveHighway, 0); }
public static MainConfigModel loadSettings() { MainConfigModel model = new MainConfigModel(); try { Plugin.Log(model.missedConfig.Enabled.ToString()); } catch { ResetSettings(model, out model); } if (File.Exists(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json")) { try { string json = File.ReadAllText(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json"); model = JsonConvert.DeserializeObject <MainConfigModel>(json); File.Delete(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json"); Plugin.Log("Loaded JSON for the last time. Goodbye, JSON!"); } catch (Exception e) { Plugin.Log("Error loading JSON!", Plugin.LogInfo.Error); } } Plugin.Log("Config loaded."); return(model); }
public static MainConfigModel loadSettings() { MainConfigModel model = new MainConfigModel(); if (!File.Exists(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json")) { model = createDefaultJSON(); Plugin.Log("Config JSON can not be found! Creating default JSON...", Plugin.LogInfo.Error); } else { try { string json = File.ReadAllText(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json"); model = JsonConvert.DeserializeObject <MainConfigModel>(json); } catch (Exception e) { Plugin.Log("Error loading JSON! Overwriting with default JSON...", Plugin.LogInfo.Error); Plugin.Log(e.Message, Plugin.LogInfo.Error); model = createDefaultJSON(); } } return(model); }
internal static MainConfigModel createDefaultJSON() { MainConfigModel def = new MainConfigModel { Enabled = true, RNG = false, DisableMenus = false, missedConfig = new MissedConfigModel() { Enabled = true, Position = ICounterPositions.BelowCombo, Index = 0, }, accuracyConfig = new AccuracyConfigModel { Enabled = true, Position = ICounterPositions.BelowCombo, Index = 1, ShowPercentage = true, DecimalPrecision = 2, }, progressConfig = new ProgressConfigModel { Enabled = true, Position = ICounterPositions.BelowEnergy, Index = 0, Mode = ICounterMode.Original, ProgressTimeLeft = false, }, scoreConfig = new ScoreConfigModel { Enabled = true, Position = ICounterPositions.BelowMultiplier, Index = 0, UseOld = false, DecimalPrecision = 2, DisplayRank = true, }, /*pBConfig = new PBConfigModel * { * Enabled = false, Position = ICounterPositions.BelowMultiplier, Index = 1, * DecimalPrecision = 2, * },*/ speedConfig = new SpeedConfigModel { Enabled = false, Position = ICounterPositions.AboveHighway, Index = 0, DecimalPrecision = 2, Mode = ICounterMode.Average, }, cutConfig = new CutConfigModel { Enabled = false, Position = ICounterPositions.AboveCombo, Index = 0, }, }; using (StreamWriter file = File.CreateText(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/CountersPlus.json")) { JsonSerializer serializer = new JsonSerializer(); JsonConvert.DefaultSettings = new Func <JsonSerializerSettings>(() => { JsonSerializerSettings settings = new JsonSerializerSettings(); settings.Formatting = Formatting.Indented; return(settings); }); serializer.Serialize(file, def); } return(def); }