/// <summary> /// Add custom settings passed as parameter to SettingsList and init this settings. /// </summary> /// <param name="customSettings"></param> public static void AddAndInitCustomSettingsTab(ProtoSettings customSettings) { SettingsList.Add(customSettings); SettingsList.Sort((s1, s2) => s1.Order == s2.Order ? s1.Name.CompareTo(s2.Name) : s1.Order.CompareTo(s2.Order)); customSettings.InitSettings(); }
public OptionCheckBox( ProtoSettings parentSettings, string id, string label, bool defaultValue, Action <bool> valueChangedCallback, string toolTip = "") : base(parentSettings, id, defaultValue, valueChangedCallback) { Label = label; ToolTip = toolTip; }
public OptionTextBox( ProtoSettings parentSettings, string id, string label, TValue defaultValue, Action <TValue> valueChangedCallback, string toolTip = "") : base(parentSettings, id, defaultValue, valueChangedCallback) { Label = label; ToolTip = toolTip; optionTextBoxValueHolder = new OptionTextBoxValueHolder(this, defaultValue); optionValueHolder = optionTextBoxValueHolder; }
public OptionSlider( ProtoSettings parentSettings, string id, string label, double defaultValue, Action <double> valueChangedCallback, double minValue = 0.0, double stepSize = 0.05, double maxValue = 1.0, string toolTip = "") : base(parentSettings, id, defaultValue, valueChangedCallback) { Label = label; ToolTip = toolTip; MinValue = minValue; MaxValue = maxValue; StepSize = stepSize; }
public OptionEntityList( ProtoSettings parentSettings, string id, IEnumerable <IProtoEntity> entityList, List <string> defaultEnabledList, Action <List <IProtoEntity> > onEnabledListChanged) { this.parentSettings = parentSettings; Id = id; this.defaultEnabledList = defaultEnabledList; EntityDictionary = new Dictionary <IProtoEntity, bool>(); foreach (var entity in entityList) { EntityDictionary[entity] = (defaultEnabledList?.Count > 0) && defaultEnabledList.Contains(entity.Id); } OnEnabledListChanged = onEnabledListChanged; optionValueHolder = new OptionValueHolder(this, EntityDictionary); }
public ViewModelSettings(ProtoSettings owner) { this.owner = owner; Name = owner.Name; Description = owner.Description; owner.OnIsModifiedChanged += OnIsModifiedChanged; if (owner is SettingsFeature settingsFeature) { IsEnabled = settingsFeature.IsEnabled; settingsFeature.IsEnabledChanged += OnIsEnabledChanged; } OptionsControls = new ObservableCollection <FrameworkElement>(); foreach (var option in owner.Options) { option.CreateControl(out var optionControl); OptionsControls.Add(optionControl); } }