/// <summary>
        /// Constructor for the mod settings window.
        /// </summary>
        /// <param name="mod">Mod whose values are to be exposed on screen.</param>
        public ModSettingsWindow(IUserInterfaceManager uiManager, Mod mod)
            : base(uiManager)
        {
            this.mod = mod;

            settings = ModSettingsData.Make(mod);
            settings.SaveDefaults();
            settings.LoadLocalValues();
        }
Exemple #2
0
        /// <summary>
        /// Constructor for the mod settings window.
        /// </summary>
        /// <param name="mod">Mod whose values are to be exposed on screen.</param>
        /// <param name="liveChange">True if the game is already running.</param>
        public ModSettingsWindow(IUserInterfaceManager uiManager, Mod mod, bool liveChange = false)
            : base(uiManager)
        {
            this.mod        = mod;
            this.liveChange = liveChange;

            settings = ModSettingsData.Make(mod);
            settings.SaveDefaults();
            settings.LoadLocalValues();
        }
        /// <summary>
        /// Import settings for a mod.
        /// </summary>
        /// <param name="mod">Mod to load settings for.</param>
        internal ModSettings(Mod mod)
        {
            if (!mod.HasSettings)
            {
                throw new ArgumentException(string.Format("{0} has no settings.", mod.Title), "mod");
            }

            this.mod = mod;
            data     = ModSettingsData.Make(mod);
            data.LoadLocalValues();
        }
Exemple #4
0
        /// <summary>
        /// Constructor for the mod settings window.
        /// </summary>
        /// <param name="mod">Mod whose values are to be exposed on screen.</param>
        /// <param name="liveChange">True if the game is already running.</param>
        public ModSettingsWindow(IUserInterfaceManager uiManager, Mod mod, bool liveChange = false)
            : base(uiManager)
        {
            this.mod        = mod;
            this.liveChange = liveChange;

            // Make room for warning label about applying settings during runtime
            columnHeight = liveChange ? 155 : 165;

            settings = ModSettingsData.Make(mod);
            settings.SaveDefaults();
            settings.LoadLocalValues();
        }
        private void Load()
        {
            data = ModSettingsData.Make(SettingsPath);
            data.SaveDefaults();
            data.LoadPresets(PresetPath);

            sections = new ReorderableList(data.Sections, typeof(SectionCollection), true, true, true, true);
            sections.drawHeaderCallback    = Sections_DrawHeaderCallback;
            sections.drawElementCallback   = Sections_DrawElementCallback;
            sections.elementHeightCallback = Sections_ElementHeightCallback;
            sections.onAddCallback         = Sections_OnAddCallback;
            sections.onRemoveCallback      = Sections_OnRemoveCallback;
            sections.onReorderCallback     = Sections_OnReorderCallback;

            keys.Clear();
            foreach (var section in data.Sections)
            {
                ReorderableList key = new ReorderableList(section.Keys, typeof(KeyCollection), true, true, true, true);
                key.drawHeaderCallback    = Keys_DrawHeaderCallback;
                key.drawElementCallback   = Keys_DrawElementCallback;
                key.elementHeightCallback = Keys_ElementHeightCallback;
                key.onAddCallback         = Keys_OnAddCallback;
                key.onRemoveCallback      = Keys_OnRemoveCallback;
                keys.Add(key);
            }

            presets = new ReorderableList(data.Presets, typeof(Preset), true, true, true, true);
            presets.drawHeaderCallback    = r => presetsExpanded = EditorGUI.Foldout(r, presetsExpanded, "Presets");
            presets.drawElementCallback   = Presets_DrawElementCallback;
            presets.elementHeightCallback = x => presetsExpanded ? lineHeight : 0;

            currentPreset = -1;
            LoadPreset(-1);
            data.SyncPresets();
            modName   = Path.GetFileName(targetPath);
            localPath = GetLocalPath(targetPath);
        }