public void OnSettingsUI(UIHelperBase helper) { helper.AddDropdown( "Tourism income", PTM_Options.TourismIncomeMultipliersStr, PTM_Options.Instance.GetTourismIncomeMultiplierIndex(), TourismIncomeMultiplierOnSelected ); helper.AddDropdown( "Taxi income", PTM_Options.TaxiIncomeMultipliersStr, PTM_Options.Instance.GetTaxiIncomeMultiplierIndex(), TaxiIncomeMultiplierOnSelected ); helper.AddDropdown( "Office income", PTM_Options.OfficeIncomeMultipliersStr, PTM_Options.Instance.GetOfficeIncomeMultiplierIndex(), OfficeIncomeMultiplierOnSelected ); helper.AddDropdown( "Industry income", PTM_Options.IndustryIncomeMultipliersStr, PTM_Options.Instance.GetIndustryIncomeMultiplierIndex(), IndustryIncomeMultiplierOnSelected ); }
public void OnSettingsUI(UIHelperBase helper) { if (!isActive()) { return; } this.InitConfigFile(); UIHelperBase group = helper.AddGroup("Format Settings"); int num = Array.IndexOf <string>(ModInfo.DateFormats, ModInfo.ModConf.DateFormat); if (num < 0) { num = 0; } group.AddDropdown("Date format", ModInfo.DateFormats, num, delegate(int c) { ModInfo.ModConf.DateFormat = ModInfo.DateFormats[c]; ModConfiguration.Serialize(ModInfo.configPath, ModInfo.ModConf); }); int num2 = Array.IndexOf <string>(ModInfo.TimeFormats, ModInfo.ModConf.TimeFormat); if (num2 < 0) { num2 = 0; } group.AddDropdown("Time format", ModInfo.TimeFormats, num2, delegate(int c) { ModInfo.ModConf.TimeFormat = ModInfo.TimeFormats[c]; ModConfiguration.Serialize(ModInfo.configPath, ModInfo.ModConf); }); }
public void OnSettingsUI(UIHelperBase helper) { try { AmericanRoadsignsTool.LoadConfig(); // Mod options: UIHelperBase group = helper.AddGroup(Name); group.AddSpace(10); // Select Options (Road signs): group.AddDropdown("Select your preferred keyboard shortcut for toggling the mod panel", new[] { "Shift + A", "Ctrl + A", "Alt + A" }, AmericanRoadsignsTool.config.keyboardshortcut, OnKeyboardShortcutChanged); group.AddSpace(10); // Select Options (Road signs): group.AddDropdown("Select the road signs pack you want to use in-game", new[] { "Vanilla", "American" }, AmericanRoadsignsTool.config.roadsignpack, OnRoadsignPackChanged); group.AddSpace(5); group.AddGroup("NOTE: changing the road sign pack you want to use requires a restart of your city."); group.AddSpace(10); // Toggle Options (Misc.): group.AddCheckbox("Write additional data to debug log", AmericanRoadsignsTool.config.enable_debug, new OnCheckChanged(OnEnableDebugChanged)); group.AddSpace(5); group.AddGroup("WARNING: enabling debug data may increase loading times!\nEnabling this setting is only recommended when you experience problems."); group.AddSpace(20); } catch (Exception e) { DebugUtils.LogException(e); } }
public static void OnSettingsUI(UIHelperBase helper) { LoadSetting(); UIHelperBase roadColorGroup = helper.AddGroup(Localization.Get("road_color_setting")); ColorRSlider = roadColorGroup.AddSlider("R" + "(" + colorR.ToString() + ")", 0, 255, 1, colorR, OnRedSliderChanged) as UISlider; ColorRSlider.parent.Find <UILabel>("Label").width = 500f; ColorGSlider = roadColorGroup.AddSlider("G" + "(" + colorG.ToString() + ")", 0, 255, 1, colorG, OnGreenSliderChanged) as UISlider; ColorGSlider.parent.Find <UILabel>("Label").width = 500f; ColorBSlider = roadColorGroup.AddSlider("B" + "(" + colorB.ToString() + ")", 0, 255, 1, colorB, OnBlueSliderChanged) as UISlider; ColorBSlider.parent.Find <UILabel>("Label").width = 500f; roadColorGroup.AddCheckbox(Localization.Get("change_all_sliders"), grayscale, (index) => OnGrayscaleSet(index)); roadColorGroup.AddCheckbox(Localization.Get("change_other_color"), changeAllRoadColor, (index) => OnChangeAllRoadColorSet(index)); UIHelperBase roadSkinGroup = helper.AddGroup(Localization.Get("road_prop_setting")); roadSkinGroup.AddDropdown(Localization.Get("road_arrows"), RoadSkins.roadArrowsAvailable, RoadSkins.iroadArrow, (index) => OnRoadArrowSet(index)); roadSkinGroup.AddDropdown(Localization.Get("traffic_lights"), RoadSkins.trafficLightsAvailable, RoadSkins.itrafficLight, (index) => OnTrafficLightSet(index)); roadSkinGroup.AddDropdown(Localization.Get("median_signs"), RoadSkins.medianSignsAvailable, RoadSkins.imedianSign, (index) => OnMedianSignSet(index)); roadSkinGroup.AddCheckbox(Localization.Get("traffic_cameras"), RoadSkins.useCamera, (index) => OnCameraSet(index)); UIHelperBase policyToggleGroup = helper.AddGroup(Localization.Get("district_policy_setting")); policyToggleGroup.AddCheckbox(Localization.Get("tip1"), RoadSkins.policyToggleExpressWalls, (index) => OnToggleExpressWallsSet(index)); policyToggleGroup.AddCheckbox(Localization.Get("tip2"), RoadSkins.policyInvertUnderground, (index) => OnPolicyInvertUndergroundSet(index)); SaveSetting(); }
public static float someValue9 = 0.8f; // debug value public static void makeSettings(UIHelperBase helper) { mainGroup = helper.AddGroup(Translation.GetString("TMPE_Title")); simAccuracyDropdown = mainGroup.AddDropdown(Translation.GetString("Simulation_accuracy") + ":", new string[] { Translation.GetString("Very_high"), Translation.GetString("High"), Translation.GetString("Medium"), Translation.GetString("Low"), Translation.GetString("Very_Low") }, simAccuracy, onSimAccuracyChanged) as UIDropDown; recklessDriversDropdown = mainGroup.AddDropdown(Translation.GetString("Reckless_driving") + ":", new string[] { Translation.GetString("Path_Of_Evil_(10_%)"), Translation.GetString("Rush_Hour_(5_%)"), Translation.GetString("Minor_Complaints_(2_%)"), Translation.GetString("Holy_City_(0_%)") }, recklessDrivers, onRecklessDriversChanged) as UIDropDown; //publicTransportUsageDropdown = mainGroup.AddDropdown(Translation.GetString("Citizens_use_public_transportation") + ":", new string[] { Translation.GetString("Very_often"), Translation.GetString("Often"), Translation.GetString("Sometimes"), Translation.GetString("Rarely"), Translation.GetString("Very_rarely") }, recklessDrivers, onRecklessDriversChanged) as UIDropDown; relaxedBussesToggle = mainGroup.AddCheckbox(Translation.GetString("Busses_may_ignore_lane_arrows"), relaxedBusses, onRelaxedBussesChanged) as UICheckBox; #if DEBUG allRelaxedToggle = mainGroup.AddCheckbox(Translation.GetString("All_vehicles_may_ignore_lane_arrows"), allRelaxed, onAllRelaxedChanged) as UICheckBox; #endif allowEnterBlockedJunctionsToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_may_enter_blocked_junctions"), allowEnterBlockedJunctions, onAllowEnterBlockedJunctionsChanged) as UICheckBox; allowUTurnsToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_may_do_u-turns_at_junctions") + " (BETA feature)", allowUTurns, onAllowUTurnsChanged) as UICheckBox; allowLaneChangesWhileGoingStraightToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_going_straight_may_change_lanes_at_junctions"), allowLaneChangesWhileGoingStraight, onAllowLaneChangesWhileGoingStraightChanged) as UICheckBox; strongerRoadConditionEffectsToggle = mainGroup.AddCheckbox(Translation.GetString("Road_condition_has_a_bigger_impact_on_vehicle_speed"), strongerRoadConditionEffects, onStrongerRoadConditionEffectsChanged) as UICheckBox; enableDespawningToggle = mainGroup.AddCheckbox(Translation.GetString("Enable_despawning"), enableDespawning, onEnableDespawningChanged) as UICheckBox; aiGroup = helper.AddGroup("Advanced Vehicle AI"); advancedAIToggle = aiGroup.AddCheckbox(Translation.GetString("Enable_Advanced_Vehicle_AI"), advancedAI, onAdvancedAIChanged) as UICheckBox; #if DEBUG //if (SystemInfo.processorCount >= DYNAMIC_RECALC_MIN_PROCESSOR_COUNT) dynamicPathRecalculationToggle = aiGroup.AddCheckbox(Translation.GetString("Enable_dynamic_path_calculation"), dynamicPathRecalculation, onDynamicPathRecalculationChanged) as UICheckBox; #endif highwayRulesToggle = aiGroup.AddCheckbox(Translation.GetString("Enable_highway_specific_lane_merging/splitting_rules"), highwayRules, onHighwayRulesChanged) as UICheckBox; #if DEBUG preferOuterLaneToggle = aiGroup.AddCheckbox(Translation.GetString("Prefer_outer_lane") + " (BETA feature)", preferOuterLane, onPreferOuterLaneChanged) as UICheckBox; #endif //laneChangingRandomizationDropdown = aiGroup.AddDropdown(Translation.GetString("Drivers_want_to_change_lanes_(only_applied_if_Advanced_AI_is_enabled):"), new string[] { Translation.GetString("Very_often") + " (50 %)", Translation.GetString("Often") + " (25 %)", Translation.GetString("Sometimes") + " (10 %)", Translation.GetString("Rarely") + " (5 %)", Translation.GetString("Very_rarely") + " (2.5 %)", Translation.GetString("Only_if_necessary") }, laneChangingRandomization, onLaneChangingRandomizationChanged) as UIDropDown; overlayGroup = helper.AddGroup(Translation.GetString("Persistently_visible_overlays")); prioritySignsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Priority_signs"), prioritySignsOverlay, onPrioritySignsOverlayChanged) as UICheckBox; timedLightsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Timed_traffic_lights"), timedLightsOverlay, onTimedLightsOverlayChanged) as UICheckBox; speedLimitsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Speed_limits"), speedLimitsOverlay, onSpeedLimitsOverlayChanged) as UICheckBox; vehicleRestrictionsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Vehicle_restrictions"), vehicleRestrictionsOverlay, onVehicleRestrictionsOverlayChanged) as UICheckBox; connectedLanesOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Connected_lanes"), connectedLanesOverlay, onConnectedLanesOverlayChanged) as UICheckBox; nodesOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Nodes_and_segments"), nodesOverlay, onNodesOverlayChanged) as UICheckBox; showLanesToggle = overlayGroup.AddCheckbox(Translation.GetString("Lanes"), showLanes, onShowLanesChanged) as UICheckBox; #if DEBUG vehicleOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Vehicles"), vehicleOverlay, onVehicleOverlayChanged) as UICheckBox; #endif maintenanceGroup = helper.AddGroup(Translation.GetString("Maintenance")); forgetTrafficLightsBtn = maintenanceGroup.AddButton(Translation.GetString("Forget_toggled_traffic_lights"), onClickForgetToggledLights) as UIButton; #if DEBUG resetSpeedLimitsBtn = maintenanceGroup.AddButton(Translation.GetString("Reset_custom_speed_limits"), onClickResetSpeedLimits) as UIButton; disableSomething1Toggle = maintenanceGroup.AddCheckbox("Enable path-finding debugging", disableSomething1, onDisableSomething1Changed) as UICheckBox; disableSomething2Toggle = maintenanceGroup.AddCheckbox("Disable something #2", disableSomething2, onDisableSomething2Changed) as UICheckBox; disableSomething3Toggle = maintenanceGroup.AddCheckbox("Disable something #3", disableSomething3, onDisableSomething3Changed) as UICheckBox; disableSomething4Toggle = maintenanceGroup.AddCheckbox("Disable something #4", disableSomething4, onDisableSomething4Changed) as UICheckBox; disableSomething5Toggle = maintenanceGroup.AddCheckbox("Disable something #5", disableSomething5, onDisableSomething5Changed) as UICheckBox; pathCostMultiplicatorField = maintenanceGroup.AddTextfield("Pathcost multiplicator (mult)", String.Format("{0:0.##}", pathCostMultiplicator), onPathCostMultiplicatorChanged) as UITextField; pathCostMultiplicator2Field = maintenanceGroup.AddTextfield("Pathcost multiplicator (div)", String.Format("{0:0.##}", pathCostMultiplicator2), onPathCostMultiplicator2Changed) as UITextField; someValueField = maintenanceGroup.AddTextfield("Some value #1", String.Format("{0:0.##}", someValue), onSomeValueChanged) as UITextField; someValue2Field = maintenanceGroup.AddTextfield("Some value #2", String.Format("{0:0.##}", someValue2), onSomeValue2Changed) as UITextField; someValue3Field = maintenanceGroup.AddTextfield("Some value #3", String.Format("{0:0.##}", someValue3), onSomeValue3Changed) as UITextField; someValue4Field = maintenanceGroup.AddTextfield("Some value #4", String.Format("{0:0.##}", someValue4), onSomeValue4Changed) as UITextField; someValue5Field = maintenanceGroup.AddTextfield("Some value #5", String.Format("{0:0.##}", someValue5), onSomeValue5Changed) as UITextField; someValue6Field = maintenanceGroup.AddTextfield("Some value #6", String.Format("{0:0.##}", someValue6), onSomeValue6Changed) as UITextField; someValue7Field = maintenanceGroup.AddTextfield("Some value #7", String.Format("{0:0.##}", someValue7), onSomeValue7Changed) as UITextField; someValue8Field = maintenanceGroup.AddTextfield("Some value #8", String.Format("{0:0.##}", someValue8), onSomeValue8Changed) as UITextField; someValue9Field = maintenanceGroup.AddTextfield("Some value #9", String.Format("{0:0.##}", someValue9), onSomeValue9Changed) as UITextField; #endif }
public void initialize(UIHelperBase helper) { Logger.logInfo(Logger.LOG_OPTIONS, "OptionsManager.initialize -- Initializing Menu Options"); UIHelperBase group = helper.AddGroup("Dormitory Settings"); this.capacityDropDown = (UIDropDown)group.AddDropdown("Capacity Modifier", CAPACITY_LABELS, 1, handleCapacityChange); this.incomeDropDown = (UIDropDown)group.AddDropdown("Income Modifier", INCOME_LABELS, 2, handleIncomeChange); group.AddSpace(5); group.AddButton("Save", saveOptions); //group.AddSlider("Capacity Modifier", 0.5f, 5.0f, 0.5f, 1.0f, handleCapacityChange); }
public void generateSettings(UIHelperBase helper) { bool hasOption = ModSettings.Instance().settings.Contains("loadMotorwaySigns"); shouldLoadDefaultSign = helper.AddCheckbox("Should show game default highway signs", hasOption ? (bool)ModSettings.Instance().settings["loadMotorwaySigns"] : true, onShouldDefaultSignChecked) as UICheckBox; shieldBase = helper.AddGroup("Route Shield Options"); shieldSelector = shieldBase.AddDropdown("Route Shield", null, 0, onShieldSelected) as UIDropDown; mUpOffsetSlider = shieldBase.AddSlider("Text Up offset", -1, 1, 0.1f, 0, onUpOffsetChanged) as UISlider; mLeftOffsetSlider = shieldBase.AddSlider("Text Left offset", -1, 1, 0.1f, 0, onLeftOffsetChanged) as UISlider; mTextSizeSlider = shieldBase.AddSlider("Text Size", 0.1f, 1, 0.1f, 0, onTextSizeChanged) as UISlider; mTextColor = shieldBase.AddDropdown("Text Color", new string[] { "Black", "White" }, 0, onTextColorChanged) as UIDropDown; mSaveButton = shieldBase.AddButton("Save", onSaveBtnClicked) as UIButton; }
private static UIDropDown AddDynamicDropdown <T>(this UIHelperBase group, string text, string propertyName, IList <string> items, Action <string> action) where T : IModOptions { var property = typeof(T).GetProperty(propertyName); var defaultString = (string)property.GetValue(OptionsWrapper <T> .Options, null); int defaultSelection; try { defaultSelection = items.IndexOf(defaultString); } catch { defaultSelection = 0; property.SetValue(OptionsWrapper <T> .Options, items[0], null); } Debug.Log("Option Items"); Debug.Log(items.ToString()); return((UIDropDown)group.AddDropdown(text, items.ToArray(), defaultSelection, sel => { var selection = items[sel]; property.SetValue(OptionsWrapper <T> .Options, selection, null); OptionsWrapper <T> .SaveOptions(); action.Invoke(selection); })); }
internal static void OnSettingsUI(UIHelperBase helper) { int updateInterval = 0; if (Loader.IsActive) { updateInterval = TransferInfo.Data.DataShared.Data.updateInterval; } updateIntervalDropDown = (UIDropDown)helper.AddDropdown("Update interval", updateIntervalLabels, updateInterval, state => { TransferInfo.Data.DataShared.Data.updateInterval = state; }); var cleanGroup = helper.AddGroup("Before deleting this mod push \"Clean data\" button,\n" + "save the game, exit and unsubscribe from \"Transfer Info\""); cleanupButton = (UIButton)cleanGroup.AddButton("Clean data", () => { Serialization.CleanData(); Hooking.Cleanup(); }); updateIntervalDropDown.isEnabled = Loader.IsActive; cleanupButton.isEnabled = Loader.IsActive; helper.AddSpace(5); var globalGroup = helper.AddGroup("Global options"); globalGroup.AddCheckbox("Enable debug logging", Options.debugEnabled, state => Options.debugEnabled.value = state); }
public void OnSettingsUI(UIHelperBase helper) { UIHelperBase group = helper.AddGroup("Set Start Money value from 70,000 to 21,000,000"); Instructions = (UITextField)group.AddTextfield("Instructions", "Check to enable, select the value you want for start money.", EventTextChanged, EventTextSubmitted); Instructions.readOnly = true; Instructions.multiline = true; Instructions.width += 250; Instructions.height += 30; group.AddSpace(30); group.AddCheckbox("Enable Start Money", us.Enabled, EventCheck); StartMoney = (UITextField)group.AddTextfield("Current Value:", us.StartMoney.ToString(), EventTextChanged, EventTextSubmitted); StartMoney.readOnly = true; MyDropDown = (UIDropDown)group.AddDropdown("Use the list of values", vals, GetSelection(), EventSel); NewMoney = (UITextField)group.AddTextfield("Or enter a value. (70k - 21m)", us.StartMoney.ToString(), EventTextChanged, EventTextSubmitted); Validate = (UIButton)group.AddButton("Validate manually entered value", Validate_Clicked); Validate.enabled = false; MyDropDown.isVisible = us.Enabled; StartMoney.isVisible = us.Enabled; Validate.isVisible = us.Enabled; group.AddSpace(150); Save = (UIButton)group.AddButton("Save", EventClick); }
private static UIDropDown AddDynamicDropdown <T>(this UIHelperBase group, IOptionsWrapper <T> options, string text, string propertyName, DynamicDropDownAttribute attr, Func <string, string> translator = null) { var property = typeof(T).GetProperty(propertyName); var defaultCode = (string)property.GetValue(options.GetOptions(), null); int defaultSelection; var items = attr.GetItems(translator); var keys = items.Select(i => i.Code).ToArray(); var dictionary = items.ToDictionary(kvp => kvp.Code, kvp => kvp.Description); try { defaultSelection = Array.IndexOf(keys, defaultCode); } catch { defaultSelection = -1; } if (defaultSelection == -1) { defaultSelection = 0; property.SetValue(options.GetOptions(), keys.First(), null); } return((UIDropDown)group.AddDropdown(text, keys.Select(key => dictionary[key]).ToArray(), defaultSelection, sel => { var code = keys[sel]; property.SetValue(options.GetOptions(), code, null); options.SaveOptions(); attr.Action <string>().Invoke(code); })); }
public void OnSettingsUI(UIHelperBase helper) { var flags = Flags.CollectFlags(true); var defaultIndex = 0; if (OptionsWrapper <Options> .Options.replacement != string.Empty) { for (var i = 0; i < flags.Count; i++) { var flag = flags[i]; if (!flag.id.Equals(OptionsWrapper <Options> .Options.replacement)) { continue; } defaultIndex = i + 1; break; } if (defaultIndex == 0) { OptionsWrapper <Options> .Options.replacement = string.Empty; OptionsWrapper <Options> .SaveOptions(); } } helper.AddDropdown("Replace stock Flags with", new[] { "-----" }.Concat(flags.Select(flag => flag.description)).ToArray(), defaultIndex, sel => { OptionsWrapper <Options> .Options.replacement = sel == 0 ? string.Empty : flags[sel - 1].id; OptionsWrapper <Options> .SaveOptions(); }); helper.AddOptionsGroup <Options>(); }
private static UIComponent ProcessProperty <T>(this UIHelperBase group, string name, string description) { var checkboxAttribute = OptionsWrapper <T> .Options.GetAttribute <T, CheckboxAttribute>(name); if (checkboxAttribute != null) { return(group.AddCheckbox <T>(description, name, checkboxAttribute)); } var textfieldAttribute = OptionsWrapper <T> .Options.GetAttribute <T, TextfieldAttribute>(name); if (textfieldAttribute != null) { return(group.AddTextfield <T>(description, name, textfieldAttribute)); } var dropDownAttribute = OptionsWrapper <T> .Options.GetAttribute <T, DropDownAttribute>(name); if (dropDownAttribute != null) { return(group.AddDropdown <T>(description, name, dropDownAttribute)); } var sliderAttribute = OptionsWrapper <T> .Options.GetAttribute <T, SliderAttribute>(name); if (sliderAttribute != null) { return(group.AddSlider <T>(description, name, sliderAttribute)); } //TODO: more control types return(null); }
public void OnSettingsUI(UIHelperBase helper) { helper.AddDropdown( "Tourism income", PTM_Options.TourismIncomeMultipliersStr, PTM_Options.Instance.GetTourismIncomeMultiplierIndex(), TourismIncomeMultiplierOnSelected ); helper.AddDropdown( "Taxi income", PTM_Options.TaxiIncomeMultipliersStr, PTM_Options.Instance.GetTaxiIncomeMultiplierIndex(), TaxiIncomeMultiplierOnSelected ); }
public void OnSettingsUI(UIHelperBase helper) { UIHelperBase group = helper.AddGroup("Shadow Distance Fix"); group.AddSlider("Shadow Distance", 6000, 40000, 1000f, SDPSettings.maxDistance, sel => { var sdf = UnityEngine.Object.FindObjectOfType <CameraController>(); // Null check - for e.g. access from main menu options before game has loaded. if (sdf != null) { sdf.m_maxShadowDistance = sel; } // Update and save settings. SDPSettings.maxDistance = sel; SDPSettings.SaveSettings(); }); group.AddDropdown("minShadowDistance", OptionLabels, SDPSettings.minDistance, sel => { var sdfmin = UnityEngine.Object.FindObjectOfType <CameraController>(); // Null check - for e.g. access from main menu options before game has loaded. if (sdfmin != null) { sdfmin.m_minShadowDistance = OptionValues[sel]; } // Update and save settings. SDPSettings.minDistance = sel; SDPSettings.SaveSettings(); }); }
public void OnSettingsUI(UIHelperBase helper) { Version version = typeof(Localization).Assembly.GetName().Version; DateTime date = new DateTime(2000, 1, 1) .AddDays(version.Build) .AddSeconds(version.Revision * 2); UIHelperBase group = helper.AddGroup($"{Name} (v{version} - {date.ToString("MMMM dd, yyyy")})"); group.AddDropdown("Display", Enum.GetNames(typeof(ModConfig.DisplayCategory)), (int)ModConfig.Instance.Display, sel => { ModConfig.Instance.Display = (ModConfig.DisplayCategory)sel; ModConfig.Instance.Save(); }); group.AddSlider("Opacity", 0.5f, 1f, 0.05f, ModConfig.Instance.Opacity, sel => { ModConfig.Instance.Opacity = sel; ModConfig.Instance.Save(); }); helper.AddCheckbox("Enable random building names", ModConfig.Instance.EnableNames, enableName => { ModConfig.Instance.EnableNames = enableName; ModConfig.Instance.Save(); }); helper.AddCheckbox("Enable random building descriptions", ModConfig.Instance.EnableDescriptions, enableDesc => { ModConfig.Instance.EnableDescriptions = enableDesc; ModConfig.Instance.Save(); }); }
/// <summary> /// Create the element on the helper /// </summary> /// <param name="helper">The UIHelper to attach the element to</param> public override UIComponent Create(UIHelperBase helper) { int selectedIndex = 0; for (; selectedIndex < options.Length; ++selectedIndex) { if (options[selectedIndex] == value) { break; } } UIDropDown dropdown = helper.AddDropdown("translate me", options, selectedIndex, IgnoredFunction) as UIDropDown; dropdown.enabled = enabled; dropdown.name = uniqueName; dropdown.tooltip = value; dropdown.eventSelectedIndexChanged += new PropertyChangedEventHandler <int>(delegate(UIComponent component, int newValue) { value = dropdown.selectedValue; }); component = dropdown; return(dropdown); }
/// <summary>Creates the view item using the specified <see cref="UIHelperBase"/>.</summary> /// <param name="uiHelper">The UI helper to use for item creation.</param> /// <param name="defaultValue">The item's default value.</param> /// <returns>A newly created view item.</returns> /// <exception cref="ArgumentNullException">Thrown when the argument is null.</exception> protected override UIDropDown CreateItem(UIHelperBase uiHelper, int defaultValue) { if (uiHelper == null) { throw new ArgumentNullException(nameof(uiHelper)); } return((UIDropDown)uiHelper.AddDropdown(Constants.Placeholder, new string[0], defaultValue, ValueChanged)); }
public void OnSettingsUI(UIHelperBase helper) { helper.AddDropdown( "Office Income Multiplier", ModOptions.OfficeIncomeMultipliersStr, ModOptions.Instance.GetOfficeIncomeMultiplierIndex(), OfficeIncomeMultiplierOnSelected ); }
public static void OnSettingsUI(UIHelperBase helper) { Debug.Log("Make settings was called"); for (int i = 0; i < Enum.GetValues(typeof(Slots)).Length; i++) { dropDowns[i] = helper.AddDropdown(((Slots)i).ToString(), Enum.GetNames(typeof(GlobalTextures)), (int)selection[i], (_) => OnSettingsChanged()) as UIDropDown; } defaultTilingInput = helper.AddTextfield("default tiling value", defaultTiling.ToString(), (_) => { }, (_) => { OnSettingsChanged(); }) as UITextField; helper.AddCheckbox("temporarily disable the mod (for quick comparison)", TempDisable, (isChecked) => { TempDisable = isChecked; Patches.RefreshNets(); }); }
/// <summary> /// Called by the game when the mod options panel is setup. /// </summary> public void OnSettingsUI(UIHelperBase helper) { // Language drop down. UIDropDown languageDropDown = (UIDropDown)helper.AddDropdown(Translations.Translate("TRN_CHOICE"), Translations.LanguageList, Translations.Index, (index) => { Translations.Index = index; SettingsUtils.SaveSettings(); }); languageDropDown.autoSize = false; languageDropDown.width = 270f; // Hotkey control. languageDropDown.parent.parent.gameObject.AddComponent <OptionsKeymapping>(); }
private static UIComponent ProcessProperty <T>(this UIHelperBase group, string propertyName, string description, Func <string, string> translator = null) { if (translator != null) { description = translator.Invoke(description); } UIComponent component = null; var checkboxAttribute = OptionsWrapper <T> .Options.GetAttribute <T, CheckboxAttribute>(propertyName); if (checkboxAttribute != null) { component = group.AddCheckbox <T>(description, propertyName, checkboxAttribute); } var textfieldAttribute = OptionsWrapper <T> .Options.GetAttribute <T, TextfieldAttribute>(propertyName); if (textfieldAttribute != null) { component = group.AddTextfield <T>(description, propertyName, textfieldAttribute); } var dropDownAttribute = OptionsWrapper <T> .Options.GetAttribute <T, DropDownAttribute>(propertyName); if (dropDownAttribute != null) { component = group.AddDropdown <T>(description, propertyName, dropDownAttribute, translator); } var sliderAttribute = OptionsWrapper <T> .Options.GetAttribute <T, SliderAttribute>(propertyName); if (sliderAttribute != null) { component = group.AddSlider <T>(description, propertyName, sliderAttribute); } var buttonAttribute = OptionsWrapper <T> .Options.GetAttribute <T, ButtonAttribute>(propertyName); if (buttonAttribute != null) { component = group.AddButton <T>(description, buttonAttribute); } var labelAttribute = OptionsWrapper <T> .Options.GetAttribute <T, LabelAttribute>(propertyName); if (labelAttribute != null) { component = group.AddLabel <T>(description); } //TODO: more control types var descriptionAttribute = OptionsWrapper <T> .Options.GetAttribute <T, DescriptionAttribute>(propertyName); if (component != null && descriptionAttribute != null) { component.tooltip = (translator == null || descriptionAttribute is DontTranslateDescriptionAttribute) ? descriptionAttribute.Description : translator.Invoke(descriptionAttribute.Description); } return(component); }
internal static void MakeSettings_VehicleRestrictions(ExtUITabstrip tabStrip) { UIHelper panelHelper = tabStrip.AddTabPage(Translation.Options.Get("Tab:Policies & Restrictions")); PoliciesTab_AtJunctionsGroup.AddUI(panelHelper); UIHelperBase onRoadsGroup = panelHelper.AddGroup(Translation.Options.Get("VR.Group:On roads")); _vehicleRestrictionsAggressionDropdown = onRoadsGroup.AddDropdown( Translation.Options.Get("VR.Dropdown:Vehicle restrictions aggression") + ":", new[] { Translation.Options.Get("VR.Dropdown.Option:Low Aggression"), Translation.Options.Get("VR.Dropdown.Option:Medium Aggression"), Translation.Options.Get("VR.Dropdown.Option:High Aggression"), Translation.Options.Get("VR.Dropdown.Option:Strict"), }, (int)Options.vehicleRestrictionsAggression, OnVehicleRestrictionsAggressionChanged) as UIDropDown; _banRegularTrafficOnBusLanesToggle = onRoadsGroup.AddCheckbox( Translation.Options.Get("VR.Checkbox:Ban private cars and trucks on bus lanes"), Options.banRegularTrafficOnBusLanes, OnBanRegularTrafficOnBusLanesChanged) as UICheckBox; _highwayRulesToggle = onRoadsGroup.AddCheckbox( Translation.Options.Get("VR.Checkbox:Enable highway merging/splitting rules"), Options.highwayRules, OnHighwayRulesChanged) as UICheckBox; _preferOuterLaneToggle = onRoadsGroup.AddCheckbox( Translation.Options.Get("VR.Checkbox:Heavy trucks prefer outer lanes on highways"), Options.preferOuterLane, OnPreferOuterLaneChanged) as UICheckBox; if (SteamHelper.IsDLCOwned(SteamHelper.DLC.NaturalDisastersDLC)) { UIHelperBase inCaseOfEmergencyGroup = panelHelper.AddGroup( Translation.Options.Get("VR.Group:In case of emergency/disaster")); _evacBussesMayIgnoreRulesToggle = inCaseOfEmergencyGroup.AddCheckbox( Translation.Options.Get("VR.Checkbox:Evacuation buses may ignore traffic rules"), Options.evacBussesMayIgnoreRules, OnEvacBussesMayIgnoreRulesChanged) as UICheckBox; } NoDoubleCrossings.AddUI(onRoadsGroup); OptionsMassEditTab.MakePanel_MassEdit(panelHelper); }
public static void OnSettingsUI(UIHelperBase helper) { #if DEBUG Debug.Log("Make settings was called"); #endif helper.AddCheckbox("overwrite terrain appearance", EraseClipping, (isChecked) => { EraseClipping.value = isChecked; SubstituteTextureManager.RegenerateCache(); }); var modeDropdown = helper.AddDropdown("operating mode", Enum.GetNames(typeof(Modes)), Mode.value, (value) => { Mode.value = value; SubstituteTextureManager.RegenerateCache(); }) as UIDropDown; void OnStrengthChanged(int strength, bool apply) { strengthSlider.value = strength; strengthNumber.text = strength.ToString(); if (apply && strength != Strength.value) { Strength.value = strength; if ((Modes)Mode.value != Modes.Erase) { SubstituteTextureManager.RegenerateCache(); } } } var mainPanel = modeDropdown.parent.parent as UIScrollablePanel; var strengthPanel = mainPanel.AddUIComponent <UIPanel>(); strengthPanel.autoLayout = true; strengthPanel.autoFitChildrenHorizontally = true; strengthPanel.autoFitChildrenVertically = true; strengthPanel.autoLayoutDirection = LayoutDirection.Vertical; var strengthLabel = strengthPanel.AddUIComponent <UILabel>(); strengthLabel.text = "strength"; strengthLabel.textScale = 1.125f; var strengthRow = strengthPanel.AddUIComponent <UIPanel>(); strengthRow.autoLayout = true; strengthRow.autoFitChildrenHorizontally = true; strengthRow.autoFitChildrenVertically = true; strengthRow.autoLayoutDirection = LayoutDirection.Horizontal; strengthRow.autoLayoutPadding = new RectOffset(0, 8, 0, 0); strengthSlider = createSlider(helper, 0, MaxStrength, 1, Strength, (value) => { OnStrengthChanged(Mathf.RoundToInt(value), false); }); strengthRow.AttachUIComponent(strengthSlider.gameObject); strengthNumber = createTextField(helper, Strength.value.ToString(), (_) => { }, (value) => { OnStrengthChanged(Util.LenientStringToInt(value, 0, MaxStrength, Strength.value), true); }); strengthRow.AttachUIComponent(strengthNumber.gameObject); strengthNumber.numericalOnly = true; strengthNumber.allowFloats = false; strengthNumber.allowNegative = false; strengthNumber.maxLength = 4; strengthNumber.width /= 3; strengthSlider.height = strengthNumber.height; strengthSlider.eventMouseUp += (_, __) => OnStrengthChanged(Mathf.RoundToInt(strengthSlider.value), true); strengthSlider.eventMouseLeave += (_, __) => OnStrengthChanged(Mathf.RoundToInt(strengthSlider.value), true); strengthSlider.eventLeaveFocus += (_, __) => OnStrengthChanged(Mathf.RoundToInt(strengthSlider.value), true); strengthSlider.eventLostFocus += (_, __) => OnStrengthChanged(Mathf.RoundToInt(strengthSlider.value), true); helper.AddCheckbox("temporarily disable the mod (for quick comparison)", TempDisable, (isChecked) => { TempDisable = isChecked; SubstituteTextureManager.RegenerateCache(); }); }
public void OnSettingsUI(UIHelperBase helper) { ImprovedPublicTransportMod.Settings = Serializer.LoadSettings(); Localization.Load(); UIHelperBase uiHelperBase = helper.AddGroup(Localization.Get("SETTINGS_UI")); uiHelperBase.AddDropdown(Localization.Get("SETTINGS_VEHICLE_EDITOR_POSITION"), new string[2] { Localization.Get("SETTINGS_VEHICLE_EDITOR_POSITION_BOTTOM"), Localization.Get("SETTINGS_VEHICLE_EDITOR_POSITION_RIGHT") }, ImprovedPublicTransportMod.Settings.VehicleEditorPosition, new OnDropdownSelectionChanged(this.SelectedIndexChanged)); uiHelperBase.AddCheckbox(Localization.Get("SETTINGS_VEHICLE_EDITOR_HIDE"), ImprovedPublicTransportMod.Settings.HideVehicleEditor, new OnCheckChanged(this.CheckChanged)); }
public void OnSettingsUI(UIHelperBase helper) { helper.AddSpace(20); dropDown = (UIDropDown)helper.AddDropdown("Cost Tooltip When Selectors Are Invisible", modes, Settings.TooltipMode, (i) => { Settings.TooltipMode = i; Settings.SaveConfiguration(); if (HideSelectors.Loaded) { HideSelectors.Toggle(); } }); }
public void OnSettingsUI(UIHelperBase helper) { LoadSetting(); UIHelperBase group = helper.AddGroup(Localization.Get("DEBUG_MODE")); group.AddCheckbox(Localization.Get("SHOW_LACK_OF_RESOURCE"), debugMode, (index) => debugModeEnable(index)); UIHelperBase group1 = helper.AddGroup(Localization.Get("FIX_UNROUTED_TRANSFER_MATCH_DESCRIPTION")); group1.AddCheckbox(Localization.Get("FIX_UNROUTED_TRANSFER_MATCH_ENALBE"), fixUnRouteTransfer, (index) => fixUnRouteTransferEnable(index)); UIHelperBase group2 = helper.AddGroup(Localization.Get("OPERATION_RESOURCE_CONSUMPTION")); group2.AddDropdown(Localization.Get("OPERATION_RESOURCE_CONSUMPTION"), new string[] { Localization.Get("NORMAL"), Localization.Get("HALF"), Localization.Get("NONE") }, operationConsumption, (index) => GetOperationConsumption(index)); SaveSetting(); }
private static void AddSimulationAccuracyDropDown(UIHelperBase group) { string[] simPrecisionOptions = new[] { T("General.Dropdown.Option:Very low"), T("General.Dropdown.Option:Low"), T("General.Dropdown.Option:Medium"), T("General.Dropdown.Option:High"), T("General.Dropdown.Option:Very high"), }; _simulationAccuracyDropdown = group.AddDropdown( text: T("General.Dropdown:Simulation accuracy") + ":", options: simPrecisionOptions, defaultSelection: (int)Options.simulationAccuracy, eventCallback: OnSimulationAccuracyChanged) as UIDropDown; }
/// <summary> /// Called by the game when the mod options panel is setup. /// </summary> public void OnSettingsUI(UIHelperBase helper) { // Offset key. UIHelperBase keyGroup = helper.AddGroup(Translations.Translate("ZMD_OPT_KEY")); string[] keyOptions = new string[] { Translations.Translate("ZMD_SHIFT"), Translations.Translate("ZMD_CTRL"), Translations.Translate("ZMD_ALT") }; UIDropDown offsetKeyDropDown = (UIDropDown)keyGroup.AddDropdown(Translations.Translate("ZMD_OPT_ZOK"), keyOptions, UIThreading.offsetModifier, (value) => { UIThreading.offsetModifier = value; ZoningModSettingsFile.SaveSettings(); }); // Language options. UIHelperBase languageGroup = helper.AddGroup(Translations.Translate("TRN_CHOICE")); UIDropDown languageDropDown = (UIDropDown)languageGroup.AddDropdown(Translations.Translate("TRN_CHOICE"), Translations.LanguageList, Translations.Index, (value) => { Translations.Index = value; ZoningModSettingsFile.SaveSettings(); }); languageDropDown.autoSize = false; languageDropDown.width = 270f; }
private static void ProcessProperty <T>(this UIHelperBase group, string name, string description) where T : IModOptions { if (OptionsWrapper <T> .Options.IsCheckbox(name)) { group.AddCheckbox <T>(description, name, OptionsWrapper <T> .Options.GetCheckboxAction(name)); } else if (OptionsWrapper <T> .Options.IsTextField(name)) { group.AddTextField <T>(description, name, OptionsWrapper <T> .Options.GetTextFieldAction(name)); } else if (OptionsWrapper <T> .Options.IsDropdown(name)) { group.AddDropdown <T>(description, name, OptionsWrapper <T> .Options.GetDropdownItems(name), OptionsWrapper <T> .Options.GetDropdownAction(name)); } //TODO: more control types }
public void OnSettingsUI(UIHelperBase helper) { // Load the configuration ModConfiguration config = Configuration <ModConfiguration> .Load(); ModLoading loadinginstuc = new ModLoading(); // Small Roads int roadtexture = GetSelectedOptionIndex(config.RoadTheme); helper.AddDropdown("Texture Theme", OptionLabels, roadtexture, sel => { // Change config value and save config config.RoadTheme = OptionValues[sel]; Configuration <ModConfiguration> .Save(); loadinginstuc.replaceRoadTextures(config.RoadTheme); }); }
public void OnSettingsUI(UIHelperBase helper) { DifficultyManager d = Singleton<DifficultyManager>.instance; ddDifficulty = (UIDropDown)helper.AddDropdown( DTMLang.Text("DIFFICULTY_LEVEL"), d.DifficultiesStr, (int)d.Difficulty, DifficultyLevelOnSelected ); ddDifficulty.width = 350; ddDifficulty.height -= 2; //DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, ddDifficulty.parent.parent.ToString()); UIScrollablePanel scrollablePanel = (UIScrollablePanel)ddDifficulty.parent.parent; scrollablePanel.autoLayout = false; scrollablePanel.eventVisibilityChanged += ScrollablePanel_eventVisibilityChanged; float x1 = 15; float x2 = x1 + 140; float x3 = x1 + 375; float x4 = x3 + 140; float y = 0; float dy1 = 24; float dy2 = 44; float w1 = 150; float w2 = w1 + 140; ddDifficulty.parent.relativePosition = new Vector3(5, y); y += ddDifficulty.parent.height + 20; // // Custom options // sliders.Clear(); //addLabel(scrollablePanel, DTMLang.Text("CUSTOM_OPTIONS"), new Vector3(5, y), textScaleBig); //y += dy2; // Construction cost addLabel(scrollablePanel, truncateSemicolon(Locale.Get("TOOL_CONSTRUCTION_COST")), new Vector3(x2, y), textScaleMedium); addLabel(scrollablePanel, DTMLang.Text("SERVICE_BUILDINGS"), new Vector3(x1, y + dy1), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y + dy1), w1, OnCustomValueChanged, d.ConstructionCostMultiplier_Service); addLabel(scrollablePanel, DTMLang.Text("PUBLIC_TRANSPORT"), new Vector3(x1, y + dy1 * 2), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y + dy1 * 2), w1, OnCustomValueChanged, d.ConstructionCostMultiplier_Public); addLabel(scrollablePanel, DTMLang.Text("ROADS"), new Vector3(x1, y + dy1 * 3), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y + dy1 * 3), w1, OnCustomValueChanged, d.ConstructionCostMultiplier_Road); addLabel(scrollablePanel, DTMLang.Text("OTHERS"), new Vector3(x1, y + dy1 * 4), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y + dy1 * 4), w1, OnCustomValueChanged, d.ConstructionCostMultiplier); // Maintenance cost addLabel(scrollablePanel, truncateSemicolon(Locale.Get("AIINFO_UPKEEP")), new Vector3(x4, y), textScaleMedium); addLabel(scrollablePanel, DTMLang.Text("SERVICE_BUILDINGS"), new Vector3(x3, y + dy1), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y + dy1), w1, OnCustomValueChanged, d.MaintenanceCostMultiplier_Service); addLabel(scrollablePanel, DTMLang.Text("PUBLIC_TRANSPORT"), new Vector3(x3, y + dy1 * 2), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y + dy1 * 2), w1, OnCustomValueChanged, d.MaintenanceCostMultiplier_Public); addLabel(scrollablePanel, DTMLang.Text("ROADS"), new Vector3(x3, y + dy1 * 3), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y + dy1 * 3), w1, OnCustomValueChanged, d.MaintenanceCostMultiplier_Road); addLabel(scrollablePanel, DTMLang.Text("OTHERS"), new Vector3(x3, y + dy1 * 4), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y + dy1 * 4), w1, OnCustomValueChanged, d.MaintenanceCostMultiplier); y += dy1 * 4; y += dy2; // Relocate cost addLabel(scrollablePanel, truncateSemicolon(Locale.Get("TOOL_RELOCATE_COST")), new Vector3(x1, y), textScaleMedium); y += dy1; addSlider(scrollablePanel, new Vector3(x1, y), w2, OnCustomValueChanged, d.RelocationCostMultiplier); y += dy1; // Area purchase cost addLabel(scrollablePanel, DTMLang.Text("AREA_COST_MULTIPLIER"), new Vector3(x1, y), textScaleMedium); y += dy1; addSlider(scrollablePanel, new Vector3(x1, y), w2, OnCustomValueChanged, d.AreaCostMultiplier); // Pollution y -= 3 * dy1; addLabel(scrollablePanel, DTMLang.Text("POLLUTION_RADIUS"), new Vector3(x4, y), textScaleMedium); y += dy1; // Ground pollution radius multiplier addLabel(scrollablePanel, DTMLang.Text("GROUND_POLLUTION"), new Vector3(x3, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y), w1, OnCustomValueChanged, d.GroundPollutionRadiusMultiplier); y += dy1; addLabel(scrollablePanel, Locale.Get("INFO_NOISEPOLLUTION_TITLE"), new Vector3(x3, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y), w1, OnCustomValueChanged, d.NoisePollutionRadiusMultiplier); y += dy1; addLabel(scrollablePanel, DTMLang.Text("ONLY_POWER_WATER_GARBAGE"), new Vector3(x3, y), textScaleSmall); y += dy2; // Economy addLabel(scrollablePanel, Locale.Get("ECONOMY_TITLE"), new Vector3(x2, y), textScaleMedium); y += dy1; // Initial money addLabel(scrollablePanel, DTMLang.Text("INITIAL_MONEY"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w1, OnCustomValueChanged, d.InitialMoney); y += dy1; // Reward amount addLabel(scrollablePanel, DTMLang.Text("REWARD"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w1, OnCustomValueChanged, d.RewardMultiplier); y += dy1; // Loan amount and length addLabel(scrollablePanel, Locale.Get("ECONOMY_LOANS"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w1, OnCustomValueChanged, d.LoanMultiplier); // Demand y -= dy1 * 3; addLabel(scrollablePanel, Locale.Get("MAIN_ZONING_DEMAND"), new Vector3(x4, y), textScaleMedium); y += dy1; addLabel(scrollablePanel, DTMLang.Text("DEMAND_OFFSET"), new Vector3(x3, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y), w1, OnCustomValueChanged, d.DemandOffset); y += dy1; addLabel(scrollablePanel, DTMLang.Text("DEMAND_MULTIPLIER"), new Vector3(x3, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x4, y), w1, OnCustomValueChanged, d.DemandMultiplier); y += dy1; addLabel(scrollablePanel, DTMLang.Text("DEMAND_FORMULA"), new Vector3(x3, y), textScaleSmall); y += dy2; // Population target multiplier addLabel(scrollablePanel, DTMLang.Text("POPULATION_TARGET_MULTIPLIER"), new Vector3(x1, y), textScaleMedium); y += dy1; addSlider(scrollablePanel, new Vector3(x1, y), w2, OnCustomValueChanged, d.PopulationTargetMultiplier); y += dy2; // Target land value addLabel(scrollablePanel, DTMLang.Text("TAGRET_LANDVALUE"), new Vector3(x1, y), textScaleMedium); y += dy1; addLabel(scrollablePanel, DTMLang.Text("RESIDENTIAL"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w2, OnCustomValueChanged, d.ResidentialTargetLandValue); y += dy1; addLabel(scrollablePanel, DTMLang.Text("COMMERCIAL"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w2, OnCustomValueChanged, d.CommercialTargetLandValue); y += dy2; // Target service score addLabel(scrollablePanel, DTMLang.Text("TAGRET_SCORE"), new Vector3(x1, y), textScaleMedium); y += dy1; addLabel(scrollablePanel, DTMLang.Text("INDUSTRIAL"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w2, OnCustomValueChanged, d.IndustrialTargetScore); y += dy1; addLabel(scrollablePanel, DTMLang.Text("OFFICE"), new Vector3(x1, y), textScaleSmall); addSlider(scrollablePanel, new Vector3(x2, y), w2, OnCustomValueChanged, d.OfficeTargetScore); freeze = false; }
public static float someValue4 = 50f; // debug value public static void makeSettings(UIHelperBase helper) { mainGroup = helper.AddGroup(Translation.GetString("TMPE_Title")); simAccuracyDropdown = mainGroup.AddDropdown(Translation.GetString("Simulation_accuracy") + ":", new string[] { Translation.GetString("Very_high"), Translation.GetString("High"), Translation.GetString("Medium"), Translation.GetString("Low"), Translation.GetString("Very_Low") }, simAccuracy, onSimAccuracyChanged) as UIDropDown; recklessDriversDropdown = mainGroup.AddDropdown(Translation.GetString("Reckless_driving") + ":", new string[] { Translation.GetString("Path_Of_Evil_(10_%)"), Translation.GetString("Rush_Hour_(5_%)"), Translation.GetString("Minor_Complaints_(2_%)"), Translation.GetString("Holy_City_(0_%)") }, recklessDrivers, onRecklessDriversChanged) as UIDropDown; //publicTransportUsageDropdown = mainGroup.AddDropdown(Translation.GetString("Citizens_use_public_transportation") + ":", new string[] { Translation.GetString("Very_often"), Translation.GetString("Often"), Translation.GetString("Sometimes"), Translation.GetString("Rarely"), Translation.GetString("Very_rarely") }, recklessDrivers, onRecklessDriversChanged) as UIDropDown; relaxedBussesToggle = mainGroup.AddCheckbox(Translation.GetString("Busses_may_ignore_lane_arrows"), relaxedBusses, onRelaxedBussesChanged) as UICheckBox; #if DEBUG allRelaxedToggle = mainGroup.AddCheckbox(Translation.GetString("All_vehicles_may_ignore_lane_arrows"), allRelaxed, onAllRelaxedChanged) as UICheckBox; #endif allowEnterBlockedJunctionsToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_may_enter_blocked_junctions"), allowEnterBlockedJunctions, onAllowEnterBlockedJunctionsChanged) as UICheckBox; allowUTurnsToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_may_do_u-turns_at_junctions"), allowUTurns, onAllowUTurnsChanged) as UICheckBox; allowLaneChangesWhileGoingStraightToggle = mainGroup.AddCheckbox(Translation.GetString("Vehicles_going_straight_may_change_lanes_at_junctions"), allowLaneChangesWhileGoingStraight, onAllowLaneChangesWhileGoingStraightChanged) as UICheckBox; strongerRoadConditionEffectsToggle = mainGroup.AddCheckbox(Translation.GetString("Road_condition_has_a_bigger_impact_on_vehicle_speed"), strongerRoadConditionEffects, onStrongerRoadConditionEffectsChanged) as UICheckBox; enableDespawningToggle = mainGroup.AddCheckbox(Translation.GetString("Enable_despawning"), enableDespawning, onEnableDespawningChanged) as UICheckBox; aiGroup = helper.AddGroup("Advanced Vehicle AI"); advancedAIToggle = aiGroup.AddCheckbox(Translation.GetString("Enable_Advanced_Vehicle_AI"), advancedAI, onAdvancedAIChanged) as UICheckBox; highwayRulesToggle = aiGroup.AddCheckbox(Translation.GetString("Enable_highway_specific_lane_merging/splitting_rules")+" (BETA feature)", highwayRules, onHighwayRulesChanged) as UICheckBox; laneChangingRandomizationDropdown = aiGroup.AddDropdown(Translation.GetString("Drivers_want_to_change_lanes_(only_applied_if_Advanced_AI_is_enabled):"), new string[] { Translation.GetString("Very_often") + " (50 %)", Translation.GetString("Often") + " (25 %)", Translation.GetString("Sometimes") + " (10 %)", Translation.GetString("Rarely") + " (5 %)", Translation.GetString("Very_rarely") + " (2.5 %)", Translation.GetString("Only_if_necessary") }, laneChangingRandomization, onLaneChangingRandomizationChanged) as UIDropDown; overlayGroup = helper.AddGroup(Translation.GetString("Persistently_visible_overlays")); prioritySignsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Priority_signs"), prioritySignsOverlay, onPrioritySignsOverlayChanged) as UICheckBox; timedLightsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Timed_traffic_lights"), timedLightsOverlay, onTimedLightsOverlayChanged) as UICheckBox; speedLimitsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Speed_limits"), speedLimitsOverlay, onSpeedLimitsOverlayChanged) as UICheckBox; vehicleRestrictionsOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Vehicle_restrictions"), vehicleRestrictionsOverlay, onVehicleRestrictionsOverlayChanged) as UICheckBox; nodesOverlayToggle = overlayGroup.AddCheckbox(Translation.GetString("Nodes_and_segments"), nodesOverlay, onNodesOverlayChanged) as UICheckBox; showLanesToggle = overlayGroup.AddCheckbox(Translation.GetString("Lanes"), showLanes, onShowLanesChanged) as UICheckBox; maintenanceGroup = helper.AddGroup(Translation.GetString("Maintenance")); forgetTrafficLightsBtn = maintenanceGroup.AddButton(Translation.GetString("Forget_toggled_traffic_lights"), onClickForgetToggledLights) as UIButton; #if DEBUG disableSomething1Toggle = maintenanceGroup.AddCheckbox("Enable path-finding debugging", disableSomething1, onDisableSomething1Changed) as UICheckBox; disableSomething2Toggle = maintenanceGroup.AddCheckbox("Disable something #2", disableSomething2, onDisableSomething2Changed) as UICheckBox; disableSomething3Toggle = maintenanceGroup.AddCheckbox("Disable something #3", disableSomething3, onDisableSomething3Changed) as UICheckBox; disableSomething4Toggle = maintenanceGroup.AddCheckbox("Disable something #4", disableSomething4, onDisableSomething4Changed) as UICheckBox; disableSomething5Toggle = maintenanceGroup.AddCheckbox("Disable something #5", disableSomething5, onDisableSomething5Changed) as UICheckBox; pathCostMultiplicatorField = maintenanceGroup.AddTextfield("Pathcost multiplicator (mult)", String.Format("{0:0.##}", pathCostMultiplicator), onPathCostMultiplicatorChanged) as UITextField; pathCostMultiplicator2Field = maintenanceGroup.AddTextfield("Pathcost multiplicator (div)", String.Format("{0:0.##}", pathCostMultiplicator2), onPathCostMultiplicator2Changed) as UITextField; someValueField = maintenanceGroup.AddTextfield("Some value #1", String.Format("{0:0.##}", someValue), onSomeValueChanged) as UITextField; someValue2Field = maintenanceGroup.AddTextfield("Some value #2", String.Format("{0:0.##}", someValue2), onSomeValue2Changed) as UITextField; someValue3Field = maintenanceGroup.AddTextfield("Some value #3", String.Format("{0:0.##}", someValue3), onSomeValue3Changed) as UITextField; someValue4Field = maintenanceGroup.AddTextfield("Some value #4", String.Format("{0:0.##}", someValue4), onSomeValue4Changed) as UITextField; #endif }