예제 #1
0
        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
                );
        }
예제 #2
0
        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);
            });
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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();
        }
예제 #5
0
        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);
        }
예제 #7
0
        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);
            }));
        }
예제 #9
0
        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);
            }));
        }
예제 #12
0
        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
                );
        }
예제 #15
0
        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();
            });
        }
예제 #16
0
        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();
            });
        }
예제 #17
0
        /// <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);
        }
예제 #18
0
        /// <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(); });
 }
예제 #21
0
파일: Mod.cs 프로젝트: algernon-A/RON
        /// <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));
        }
예제 #26
0
 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();
        }
예제 #28
0
 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;
 }
예제 #29
0
        /// <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;
        }
예제 #30
0
 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
 }
예제 #31
0
        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;
        }
예제 #33
0
		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
		}