Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }