/// <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(); }
/// <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(); }
/// <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); }