internal static void MakeSettings_Keybinds(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Keybinds"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var panelHelper = new UIHelper(currentPanel);

            UIHelperBase keyboardGroup = panelHelper.AddGroup(T("Keybinds"));

            ((UIPanel)((UIHelper)keyboardGroup).self).gameObject.AddComponent <KeybindSettingsPage>();
        }
示例#2
0
        internal static void MakeSettings_General(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("General"));
            tabStrip.selectedIndex = tabIndex;

            UIPanel currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;
            UIHelper panelHelper = new UIHelper(currentPanel);

            UIHelperBase generalGroup = panelHelper.AddGroup(T("General"));

            string[] languageLabels = new string[Translation.AvailableLanguageCodes.Count + 1];
            languageLabels[0] = T("Game_language");

            for (int i = 0; i < Translation.AvailableLanguageCodes.Count; ++i)
            {
                languageLabels[i + 1] =
                    Translation.LanguageLabels[Translation.AvailableLanguageCodes[i]];
            }

            int    languageIndex = 0;
            string curLangCode   = GlobalConfig.Instance.LanguageCode;

            if (curLangCode != null)
            {
                languageIndex = Translation.AvailableLanguageCodes.IndexOf(curLangCode);
                if (languageIndex < 0)
                {
                    languageIndex = 0;
                }
                else
                {
                    ++languageIndex;
                }
            }

            _languageDropdown = generalGroup.AddDropdown(
                T("Language") + ":",
                languageLabels,
                languageIndex,
                OnLanguageChanged) as UIDropDown;
            _lockButtonToggle = generalGroup.AddCheckbox(
                T("Lock_main_menu_button_position"),
                GlobalConfig.Instance.Main.MainMenuButtonPosLocked,
                OnLockButtonChanged) as UICheckBox;
            _lockMenuToggle = generalGroup.AddCheckbox(
                T("Lock_main_menu_position"),
                GlobalConfig.Instance.Main.MainMenuPosLocked,
                OnLockMenuChanged) as UICheckBox;
            _tinyMenuToggle = generalGroup.AddCheckbox(
                T("Compact_main_menu"),
                GlobalConfig.Instance.Main.TinyMainMenu,
                OnCompactMainMenuChanged) as UICheckBox;
            _guiTransparencySlider = generalGroup.AddSlider(
                T("Window_transparency") + ":",
                0,
                90,
                5,
                GlobalConfig.Instance.Main.GuiTransparency,
                OnGuiTransparencyChanged) as UISlider;
            _guiTransparencySlider.parent.Find <UILabel>("Label").width = 500;
            _overlayTransparencySlider = generalGroup.AddSlider(
                T("Overlay_transparency") + ":",
                0,
                90,
                5,
                GlobalConfig.Instance.Main.OverlayTransparency,
                OnOverlayTransparencyChanged) as UISlider;
            _overlayTransparencySlider.parent.Find <UILabel>("Label").width = 500;
            _enableTutorialToggle = generalGroup.AddCheckbox(
                T("Enable_tutorial_messages"),
                GlobalConfig.Instance.Main.EnableTutorial,
                OnEnableTutorialsChanged) as UICheckBox;
            _showCompatibilityCheckErrorToggle
                = generalGroup.AddCheckbox(
                      T("Notify_me_if_there_is_an_unexpected_mod_conflict"),
                      GlobalConfig.Instance.Main.ShowCompatibilityCheckErrorMessage,
                      OnShowCompatibilityCheckErrorChanged) as UICheckBox;
            _scanForKnownIncompatibleModsToggle
                = generalGroup.AddCheckbox(
                      T("Scan_for_known_incompatible_mods_on_startup"),
                      GlobalConfig.Instance.Main.ScanForKnownIncompatibleModsAtStartup,
                      OnScanForKnownIncompatibleModsChanged) as UICheckBox;
            _ignoreDisabledModsToggle = generalGroup.AddCheckbox(
                T("Ignore_disabled_mods"),
                GlobalConfig.Instance.Main.IgnoreDisabledMods,
                OnIgnoreDisabledModsChanged) as UICheckBox;
            Options.Indent(_ignoreDisabledModsToggle);

            // General: Speed Limits
            SetupSpeedLimitsPanel(generalGroup);

            // General: Simulation
            UIHelperBase simGroup = panelHelper.AddGroup(T("Simulation"));

            _instantEffectsToggle = simGroup.AddCheckbox(
                T("Customizations_come_into_effect_instantaneously"),
                Options.instantEffects,
                OnInstantEffectsChanged) as UICheckBox;
        }
示例#3
0
        internal static void MakeSettings_Maintenance(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Maintenance"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var          panelHelper      = new UIHelper(currentPanel);
            UIHelperBase maintenanceGroup = panelHelper.AddGroup(T("Maintenance"));

            _resetStuckEntitiesBtn = maintenanceGroup.AddButton(
                T("Reset_stuck_cims_and_vehicles"),
                onClickResetStuckEntities) as UIButton;

            _removeParkedVehiclesBtn = maintenanceGroup.AddButton(
                T("Remove_parked_vehicles"),
                onClickRemoveParkedVehicles) as UIButton;
#if DEBUG
            _resetSpeedLimitsBtn = maintenanceGroup.AddButton(
                T("Reset_custom_speed_limits"),
                onClickResetSpeedLimits) as UIButton;
#endif
            _reloadGlobalConfBtn = maintenanceGroup.AddButton(
                T("Reload_global_configuration"),
                onClickReloadGlobalConf) as UIButton;
            _resetGlobalConfBtn = maintenanceGroup.AddButton(
                T("Reset_global_configuration"),
                onClickResetGlobalConf) as UIButton;

#if QUEUEDSTATS
            _showPathFindStatsToggle = maintenanceGroup.AddCheckbox(
                T("Show_path-find_stats"),
                Options.showPathFindStats,
                onShowPathFindStatsChanged) as UICheckBox;
#endif

            var featureGroup = panelHelper.AddGroup(T("Activated_features")) as UIHelper;
            EnablePrioritySignsToggle = featureGroup.AddCheckbox(
                T("Priority_signs"),
                Options.prioritySignsEnabled,
                OnPrioritySignsEnabledChanged) as UICheckBox;
            EnableTimedLightsToggle = featureGroup.AddCheckbox(
                T("Timed_traffic_lights"),
                Options.timedLightsEnabled,
                OnTimedLightsEnabledChanged) as UICheckBox;
            _enableCustomSpeedLimitsToggle = featureGroup.AddCheckbox(
                T("Speed_limits"),
                Options.customSpeedLimitsEnabled,
                OnCustomSpeedLimitsEnabledChanged) as UICheckBox;
            _enableVehicleRestrictionsToggle
                = featureGroup.AddCheckbox(
                      T("Vehicle_restrictions"),
                      Options.vehicleRestrictionsEnabled,
                      OnVehicleRestrictionsEnabledChanged) as UICheckBox;
            _enableParkingRestrictionsToggle
                = featureGroup.AddCheckbox(
                      T("Parking_restrictions"),
                      Options.parkingRestrictionsEnabled,
                      OnParkingRestrictionsEnabledChanged) as UICheckBox;
            _enableJunctionRestrictionsToggle
                = featureGroup.AddCheckbox(
                      T("Junction_restrictions"),
                      Options.junctionRestrictionsEnabled,
                      OnJunctionRestrictionsEnabledChanged) as UICheckBox;
            _turnOnRedEnabledToggle = featureGroup.AddCheckbox(
                T("Turn_on_red"),
                Options.turnOnRedEnabled,
                OnTurnOnRedEnabledChanged) as UICheckBox;
            _enableLaneConnectorToggle = featureGroup.AddCheckbox(
                T("Lane_connector"),
                Options.laneConnectorEnabled,
                OnLaneConnectorEnabledChanged) as UICheckBox;

            Options.Indent(_turnOnRedEnabledToggle);
        }
        internal static void MakeSettings_VehicleRestrictions(UITabstrip tabStrip, int tabIndex) {
            Options.AddOptionTab(
                tabStrip,
                Translation.Options.Get("Tab:Policies & Restrictions"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;
            currentPanel.autoLayout = true;
            currentPanel.autoLayoutDirection = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top = 5;
            currentPanel.autoLayoutPadding.left = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var panelHelper = new UIHelper(currentPanel);
            UIHelperBase atJunctionsGroup = panelHelper.AddGroup(
                Translation.Options.Get("VR.Group:At junctions"));
#if DEBUG
            _allRelaxedToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:All vehicles may ignore lane arrows"),
                      Options.allRelaxed,
                      OnAllRelaxedChanged) as UICheckBox;
#endif
            _relaxedBussesToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Buses may ignore lane arrows"),
                      Options.relaxedBusses,
                      OnRelaxedBussesChanged) as UICheckBox;
            _allowEnterBlockedJunctionsToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Vehicles may enter blocked junctions"),
                      Options.allowEnterBlockedJunctions,
                      OnAllowEnterBlockedJunctionsChanged) as UICheckBox;
            _allowUTurnsToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Vehicles may do u-turns at junctions"),
                      Options.allowUTurns,
                      OnAllowUTurnsChanged) as UICheckBox;
            _allowNearTurnOnRedToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Vehicles may turn on red"),
                      Options.allowNearTurnOnRed,
                      OnAllowNearTurnOnRedChanged) as UICheckBox;
            _allowFarTurnOnRedToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Also apply to left/right turns between one-way streets"),
                      Options.allowFarTurnOnRed,
                      OnAllowFarTurnOnRedChanged) as UICheckBox;
            _allowLaneChangesWhileGoingStraightToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Vehicles going straight may change lanes at junctions"),
                      Options.allowLaneChangesWhileGoingStraight,
                      OnAllowLaneChangesWhileGoingStraightChanged) as UICheckBox;
            _trafficLightPriorityRulesToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Vehicles follow priority rules at junctions with timedTL"),
                      Options.trafficLightPriorityRules,
                      OnTrafficLightPriorityRulesChanged) as UICheckBox;
            _automaticallyAddTrafficLightsIfApplicableToggle
                = atJunctionsGroup.AddCheckbox(
                      Translation.Options.Get("VR.Checkbox:Automatically add traffic lights if applicable"),
                      Options.automaticallyAddTrafficLightsIfApplicable,
                      OnAutomaticallyAddTrafficLightsIfApplicableChanged) as UICheckBox;

            Options.Indent(_allowFarTurnOnRedToggle);

            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;
            }
        }
示例#5
0
        internal static void MakeSettings_General(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Tab:General"));
            tabStrip.selectedIndex = tabIndex;

            UIPanel currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;
            UIHelper panelHelper = new UIHelper(currentPanel);

            UIHelperBase generalGroup = panelHelper.AddGroup(
                T("Tab:General"));

            string[] languageLabels = new string[Translation.AvailableLanguageCodes.Count + 1];
            languageLabels[0] = T("General.Dropdown.Option:Game language");

            for (int i = 0; i < Translation.AvailableLanguageCodes.Count; ++i)
            {
                languageLabels[i + 1] = Translation.Options.Get(
                    Translation.AvailableLanguageCodes[i], "General.Dropdown.Option:Language Name");
            }

            int    languageIndex = 0;
            string curLangCode   = GlobalConfig.Instance.LanguageCode;

            if (curLangCode != null)
            {
                languageIndex = Translation.AvailableLanguageCodes.IndexOf(curLangCode);
                if (languageIndex < 0)
                {
                    languageIndex = 0;
                }
                else
                {
                    ++languageIndex;
                }
            }

            _languageDropdown = generalGroup.AddDropdown(
                T("General.Dropdown:Select language") + ":",
                languageLabels,
                languageIndex,
                OnLanguageChanged) as UIDropDown;
            _lockButtonToggle = generalGroup.AddCheckbox(
                T("General.Checkbox:Lock main menu button position"),
                GlobalConfig.Instance.Main.MainMenuButtonPosLocked,
                OnLockButtonChanged) as UICheckBox;
            _lockMenuToggle = generalGroup.AddCheckbox(
                T("General.Checkbox:Lock main menu window position"),
                GlobalConfig.Instance.Main.MainMenuPosLocked,
                OnLockMenuChanged) as UICheckBox;
            _tinyMenuToggle = generalGroup.AddCheckbox(
                T("General.Checkbox:Compact main menu"),
                GlobalConfig.Instance.Main.TinyMainMenu,
                OnCompactMainMenuChanged) as UICheckBox;
            _guiTransparencySlider = generalGroup.AddSlider(
                T("General.Slider:Window transparency") + ":",
                0,
                90,
                5,
                GlobalConfig.Instance.Main.GuiTransparency,
                OnGuiTransparencyChanged) as UISlider;
            _guiTransparencySlider.parent.Find <UILabel>("Label").width = 500;
            _overlayTransparencySlider = generalGroup.AddSlider(
                T("General.Slider:Overlay transparency") + ":",
                0,
                90,
                5,
                GlobalConfig.Instance.Main.OverlayTransparency,
                OnOverlayTransparencyChanged) as UISlider;
            _overlayTransparencySlider.parent.Find <UILabel>("Label").width = 500;
            _enableTutorialToggle = generalGroup.AddCheckbox(
                T("General.Checkbox:Enable tutorials"),
                GlobalConfig.Instance.Main.EnableTutorial,
                OnEnableTutorialsChanged) as UICheckBox;
            _showCompatibilityCheckErrorToggle
                = generalGroup.AddCheckbox(
                      T("General.Checkbox:Notify me about TM:PE startup conflicts"),
                      GlobalConfig.Instance.Main.ShowCompatibilityCheckErrorMessage,
                      OnShowCompatibilityCheckErrorChanged) as UICheckBox;
            _scanForKnownIncompatibleModsToggle
                = generalGroup.AddCheckbox(
                      Translation.ModConflicts.Get("Checkbox:Scan for known incompatible mods on startup"),
                      GlobalConfig.Instance.Main.ScanForKnownIncompatibleModsAtStartup,
                      OnScanForKnownIncompatibleModsChanged) as UICheckBox;
            _ignoreDisabledModsToggle = generalGroup.AddCheckbox(
                Translation.ModConflicts.Get("Checkbox:Ignore disabled mods"),
                GlobalConfig.Instance.Main.IgnoreDisabledMods,
                OnIgnoreDisabledModsChanged) as UICheckBox;
            Options.Indent(_ignoreDisabledModsToggle);

            // General: Speed Limits
            SetupSpeedLimitsPanel(generalGroup);

            // General: Simulation
            UIHelperBase simGroup = panelHelper.AddGroup(T("General.Group:Simulation"));

            _instantEffectsToggle = simGroup.AddCheckbox(
                T("General.Checkbox:Apply AI changes right away"),
                Options.instantEffects,
                OnInstantEffectsChanged) as UICheckBox;
        }
示例#6
0
        internal static void MakeSettings_Gameplay(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, Translation.Options.Get("Tab:Gameplay"));
            tabStrip.selectedIndex = tabIndex;
            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;
            var          panelHelper      = new UIHelper(currentPanel);
            UIHelperBase vehBehaviorGroup = panelHelper.AddGroup(
                Translation.Options.Get("Gameplay.Group:Vehicle behavior"));

            _recklessDriversDropdown
                = vehBehaviorGroup.AddDropdown(
                      Translation.Options.Get("Gameplay.Dropdown:Reckless drivers%") + ":",
                      new[] {
                Translation.Options.Get("Gameplay.Dropdown.Option:Path Of Evil (10%)"),
                Translation.Options.Get("Gameplay.Dropdown.Option:Rush Hour (5%)"),
                Translation.Options.Get("Gameplay.Dropdown.Option:Minor Complaints (2%)"),
                Translation.Options.Get("Gameplay.Dropdown.Option:Holy City (0%)")
            },
                      Options.recklessDrivers,
                      OnRecklessDriversChanged) as UIDropDown;
            _recklessDriversDropdown.width = 350;
            _individualDrivingStyleToggle
                = vehBehaviorGroup.AddCheckbox(
                      Translation.Options.Get("Gameplay.Checkbox:Individual driving styles"),
                      Options.individualDrivingStyle,
                      onIndividualDrivingStyleChanged) as UICheckBox;

            if (SteamHelper.IsDLCOwned(SteamHelper.DLC.SnowFallDLC))
            {
                _strongerRoadConditionEffectsToggle
                    = vehBehaviorGroup.AddCheckbox(
                          Translation.Options.Get("Gameplay.Checkbox:Increase road condition impact"),
                          Options.strongerRoadConditionEffects,
                          OnStrongerRoadConditionEffectsChanged) as UICheckBox;
            }

            // TODO: Duplicates main menu button function
            _disableDespawningToggle = vehBehaviorGroup.AddCheckbox(
                Translation.Options.Get("Maintenance.Checkbox:Disable despawning"),
                Options.disableDespawning,
                onDisableDespawningChanged) as UICheckBox;

            UIHelperBase vehAiGroup = panelHelper.AddGroup(
                Translation.Options.Get("Gameplay.Group:Advanced vehicle AI"));

            _advancedAIToggle = vehAiGroup.AddCheckbox(
                Translation.Options.Get("Gameplay.Checkbox:Enable advanced vehicle AI"),
                Options.advancedAI,
                OnAdvancedAiChanged) as UICheckBox;
            _altLaneSelectionRatioSlider
                = vehAiGroup.AddSlider(
                      Translation.Options.Get("Gameplay.Slider:Dynamic lane selection") + ":",
                      0,
                      100,
                      5,
                      Options.altLaneSelectionRatio,
                      OnAltLaneSelectionRatioChanged) as UISlider;
            _altLaneSelectionRatioSlider.parent.Find <UILabel>("Label").width = 450;

            UIHelperBase parkAiGroup = panelHelper.AddGroup(
                Translation.Options.Get("Gameplay.Group:Parking AI"));

            _prohibitPocketCarsToggle
                = parkAiGroup.AddCheckbox(
                      Translation.Options.Get("Gameplay.Checkbox:Enable more realistic parking"),
                      Options.parkingAI,
                      OnProhibitPocketCarsChanged) as UICheckBox;

            UIHelperBase ptGroup = panelHelper.AddGroup(
                Translation.Options.Get("Gameplay.Group:Public transport"));

            _realisticPublicTransportToggle
                = ptGroup.AddCheckbox(
                      Translation.Options.Get("Gameplay.Checkbox:No excessive transfers"),
                      Options.realisticPublicTransport,
                      OnRealisticPublicTransportChanged) as UICheckBox;
        }
示例#7
0
        internal static void MakeSettings_Gameplay(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Gameplay"));
            tabStrip.selectedIndex = tabIndex;
            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;
            var          panelHelper      = new UIHelper(currentPanel);
            UIHelperBase vehBehaviorGroup = panelHelper.AddGroup(T("Vehicle_behavior"));

            _recklessDriversDropdown
                = vehBehaviorGroup.AddDropdown(
                      T("Reckless_driving") + ":",
                      new[] {
                T("Path_Of_Evil_(10_%)"), T("Rush_Hour_(5_%)"),
                T("Minor_Complaints_(2_%)"), T("Holy_City_(0_%)")
            },
                      Options.recklessDrivers,
                      OnRecklessDriversChanged) as UIDropDown;
            _recklessDriversDropdown.width = 300;
            _individualDrivingStyleToggle  = vehBehaviorGroup.AddCheckbox(
                T("Individual_driving_styles"),
                Options.individualDrivingStyle,
                onIndividualDrivingStyleChanged) as UICheckBox;

            if (SteamHelper.IsDLCOwned(SteamHelper.DLC.SnowFallDLC))
            {
                _strongerRoadConditionEffectsToggle
                    = vehBehaviorGroup.AddCheckbox(
                          T("Road_condition_has_a_bigger_impact_on_vehicle_speed"),
                          Options.strongerRoadConditionEffects,
                          OnStrongerRoadConditionEffectsChanged) as UICheckBox;
            }

            _disableDespawningToggle = vehBehaviorGroup.AddCheckbox(
                T("Disable_despawning"),
                Options.disableDespawning,
                onDisableDespawningChanged) as UICheckBox;

            UIHelperBase vehAiGroup = panelHelper.AddGroup(T("Advanced_Vehicle_AI"));

            _advancedAIToggle = vehAiGroup.AddCheckbox(
                T("Enable_Advanced_Vehicle_AI"),
                Options.advancedAI,
                OnAdvancedAiChanged) as UICheckBox;
            _altLaneSelectionRatioSlider = vehAiGroup.AddSlider(
                T("Dynamic_lane_section") + ":",
                0,
                100,
                5,
                Options.altLaneSelectionRatio,
                OnAltLaneSelectionRatioChanged) as UISlider;
            _altLaneSelectionRatioSlider.parent.Find <UILabel>("Label").width = 450;

            UIHelperBase parkAiGroup = panelHelper.AddGroup(T("Parking_AI"));

            _prohibitPocketCarsToggle = parkAiGroup.AddCheckbox(
                T("Enable_more_realistic_parking"),
                Options.parkingAI,
                OnProhibitPocketCarsChanged) as UICheckBox;

            UIHelperBase ptGroup = panelHelper.AddGroup(T("Public_transport"));

            _realisticPublicTransportToggle = ptGroup.AddCheckbox(
                T(
                    "Prevent_excessive_transfers_at_public_transport_stations"),
                Options.realisticPublicTransport,
                OnRealisticPublicTransportChanged) as UICheckBox;
        }
示例#8
0
        internal static void MakeSettings_Overlays(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, Translation.Options.Get("Tab:Overlays"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var panelHelper = new UIHelper(currentPanel);

            _prioritySignsOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Checkbox:Priority signs"),
                Options.prioritySignsOverlay,
                OnPrioritySignsOverlayChanged) as UICheckBox;
            _timedLightsOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Checkbox:Timed traffic lights"),
                Options.timedLightsOverlay,
                OnTimedLightsOverlayChanged) as UICheckBox;
            _speedLimitsOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Checkbox:Speed limits"),
                Options.speedLimitsOverlay,
                OnSpeedLimitsOverlayChanged) as UICheckBox;
            _vehicleRestrictionsOverlayToggle
                = panelHelper.AddCheckbox(
                      Translation.Options.Get("Checkbox:Vehicle restrictions"),
                      Options.vehicleRestrictionsOverlay,
                      OnVehicleRestrictionsOverlayChanged) as UICheckBox;
            _parkingRestrictionsOverlayToggle
                = panelHelper.AddCheckbox(
                      Translation.Options.Get("Checkbox:Parking restrictions"),
                      Options.parkingRestrictionsOverlay,
                      OnParkingRestrictionsOverlayChanged) as UICheckBox;
            _junctionRestrictionsOverlayToggle
                = panelHelper.AddCheckbox(
                      Translation.Options.Get("Checkbox:Junction restrictions"),
                      Options.junctionRestrictionsOverlay,
                      OnJunctionRestrictionsOverlayChanged) as UICheckBox;
            _connectedLanesOverlayToggle
                = panelHelper.AddCheckbox(
                      Translation.Options.Get("Overlay.Checkbox:Connected lanes"),
                      Options.connectedLanesOverlay,
                      OnConnectedLanesOverlayChanged) as UICheckBox;
            _nodesOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Overlay.Checkbox:Nodes and segments"),
                Options.nodesOverlay,
                onNodesOverlayChanged) as UICheckBox;
            _showLanesToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Overlay.Checkbox:Lanes"),
                Options.showLanes,
                onShowLanesChanged) as UICheckBox;
#if DEBUG
            _vehicleOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Overlay.Checkbox:Vehicles"),
                Options.vehicleOverlay,
                onVehicleOverlayChanged) as UICheckBox;
            _citizenOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Overlay.Checkbox:Citizens"),
                Options.citizenOverlay,
                onCitizenOverlayChanged) as UICheckBox;
            _buildingOverlayToggle = panelHelper.AddCheckbox(
                Translation.Options.Get("Overlay.Checkbox:Buildings"),
                Options.buildingOverlay,
                onBuildingOverlayChanged) as UICheckBox;
#endif
        }
示例#9
0
        internal static void MakeSettings_VehicleRestrictions(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Policies_&_Restrictions"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var          panelHelper      = new UIHelper(currentPanel);
            UIHelperBase atJunctionsGroup = panelHelper.AddGroup(T("At_junctions"));

#if DEBUG
            _allRelaxedToggle = atJunctionsGroup.AddCheckbox(
                T("All_vehicles_may_ignore_lane_arrows"),
                Options.allRelaxed,
                OnAllRelaxedChanged) as UICheckBox;
#endif
            _relaxedBussesToggle = atJunctionsGroup.AddCheckbox(
                T("Busses_may_ignore_lane_arrows"),
                Options.relaxedBusses,
                OnRelaxedBussesChanged) as UICheckBox;
            _allowEnterBlockedJunctionsToggle
                = atJunctionsGroup.AddCheckbox(
                      T("Vehicles_may_enter_blocked_junctions"),
                      Options.allowEnterBlockedJunctions,
                      onAllowEnterBlockedJunctionsChanged) as UICheckBox;
            _allowUTurnsToggle = atJunctionsGroup.AddCheckbox(
                T("Vehicles_may_do_u-turns_at_junctions"),
                Options.allowUTurns,
                onAllowUTurnsChanged) as UICheckBox;
            _allowNearTurnOnRedToggle = atJunctionsGroup.AddCheckbox(
                T("Vehicles_may_turn_on_red"),
                Options.allowNearTurnOnRed,
                onAllowNearTurnOnRedChanged) as UICheckBox;
            _allowFarTurnOnRedToggle
                = atJunctionsGroup.AddCheckbox(
                      T("Also_apply_to_left/right_turns_between_one-way_streets"),
                      Options.allowFarTurnOnRed,
                      onAllowFarTurnOnRedChanged) as UICheckBox;
            _allowLaneChangesWhileGoingStraightToggle
                = atJunctionsGroup.AddCheckbox(
                      T("Vehicles_going_straight_may_change_lanes_at_junctions"),
                      Options.allowLaneChangesWhileGoingStraight,
                      onAllowLaneChangesWhileGoingStraightChanged) as UICheckBox;
            _trafficLightPriorityRulesToggle
                = atJunctionsGroup.AddCheckbox(
                      T("Vehicles_follow_priority_rules_at_junctions_with_timed_traffic_lights"),
                      Options.trafficLightPriorityRules,
                      OnTrafficLightPriorityRulesChanged) as UICheckBox;

            Options.Indent(_allowFarTurnOnRedToggle);

            UIHelperBase onRoadsGroup = panelHelper.AddGroup(T("On_roads"));
            _vehicleRestrictionsAggressionDropdown
                = onRoadsGroup.AddDropdown(
                      T("Vehicle_restrictions_aggression") + ":",
                      new[] { T("Low"), T("Medium"), T("High"), T("Strict") },
                      (int)Options.vehicleRestrictionsAggression,
                      OnVehicleRestrictionsAggressionChanged) as UIDropDown;
            _banRegularTrafficOnBusLanesToggle
                = onRoadsGroup.AddCheckbox(
                      T("Ban_private_cars_and_trucks_on_bus_lanes"),
                      Options.banRegularTrafficOnBusLanes,
                      OnBanRegularTrafficOnBusLanesChanged) as UICheckBox;
            _highwayRulesToggle = onRoadsGroup.AddCheckbox(
                T("Enable_highway_specific_lane_merging/splitting_rules"),
                Options.highwayRules,
                OnHighwayRulesChanged) as UICheckBox;
            _preferOuterLaneToggle = onRoadsGroup.AddCheckbox(
                T("Heavy_trucks_prefer_outer_lanes_on_highways"),
                Options.preferOuterLane,
                OnPreferOuterLaneChanged) as UICheckBox;

            if (SteamHelper.IsDLCOwned(SteamHelper.DLC.NaturalDisastersDLC))
            {
                UIHelperBase inCaseOfEmergencyGroup =
                    panelHelper.AddGroup(T("In_case_of_emergency"));
                _evacBussesMayIgnoreRulesToggle
                    = inCaseOfEmergencyGroup.AddCheckbox(
                          T("Evacuation_busses_may_ignore_traffic_rules"),
                          Options.evacBussesMayIgnoreRules,
                          OnEvacBussesMayIgnoreRulesChanged) as UICheckBox;
            }
        }
        internal static void MakeSettings_Maintenance(UITabstrip tabStrip, int tabIndex)
        {
            Options.AddOptionTab(tabStrip, T("Tab:Maintenance"));
            tabStrip.selectedIndex = tabIndex;

            var currentPanel = tabStrip.tabContainer.components[tabIndex] as UIPanel;

            currentPanel.autoLayout              = true;
            currentPanel.autoLayoutDirection     = LayoutDirection.Vertical;
            currentPanel.autoLayoutPadding.top   = 5;
            currentPanel.autoLayoutPadding.left  = 10;
            currentPanel.autoLayoutPadding.right = 10;

            var          panelHelper      = new UIHelper(currentPanel);
            UIHelperBase maintenanceGroup = panelHelper.AddGroup(T("Tab:Maintenance"));

            _resetStuckEntitiesBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Reset stuck cims and vehicles"),
                onClickResetStuckEntities) as UIButton;

            _removeParkedVehiclesBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Remove parked vehicles"),
                OnClickRemoveParkedVehicles) as UIButton;

            _removeAllExistingTrafficLightsBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Remove all existing traffic lights"),
                OnClickRemoveAllExistingTrafficLights) as UIButton;
#if DEBUG
            _resetSpeedLimitsBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Reset custom speed limits"),
                OnClickResetSpeedLimits) as UIButton;
#endif
            _reloadGlobalConfBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Reload global configuration"),
                OnClickReloadGlobalConf) as UIButton;
            _resetGlobalConfBtn = maintenanceGroup.AddButton(
                T("Maintenance.Button:Reset global configuration"),
                OnClickResetGlobalConf) as UIButton;

#if QUEUEDSTATS
            _showPathFindStatsToggle = maintenanceGroup.AddCheckbox(
                T("Maintenance.Checkbox:Show path-find stats"),
                Options.showPathFindStats,
                OnShowPathFindStatsChanged) as UICheckBox;
#endif

            var featureGroup =
                panelHelper.AddGroup(T("Maintenance.Group:Activated features")) as UIHelper;
            EnablePrioritySignsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Priority signs"),
                Options.prioritySignsEnabled,
                OnPrioritySignsEnabledChanged) as UICheckBox;
            EnableTimedLightsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Timed traffic lights"),
                Options.timedLightsEnabled,
                OnTimedLightsEnabledChanged) as UICheckBox;
            _enableCustomSpeedLimitsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Speed limits"),
                Options.customSpeedLimitsEnabled,
                OnCustomSpeedLimitsEnabledChanged) as UICheckBox;
            _enableVehicleRestrictionsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Vehicle restrictions"),
                Options.vehicleRestrictionsEnabled,
                OnVehicleRestrictionsEnabledChanged) as
                                               UICheckBox;
            _enableParkingRestrictionsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Parking restrictions"),
                Options.parkingRestrictionsEnabled,
                OnParkingRestrictionsEnabledChanged) as
                                               UICheckBox;
            _enableJunctionRestrictionsToggle = featureGroup.AddCheckbox(
                T("Checkbox:Junction restrictions"),
                Options.junctionRestrictionsEnabled,
                OnJunctionRestrictionsEnabledChanged) as
                                                UICheckBox;
            _turnOnRedEnabledToggle = featureGroup.AddCheckbox(
                T("Maintenance.Checkbox:Turn on red"),
                Options.turnOnRedEnabled,
                OnTurnOnRedEnabledChanged) as UICheckBox;
            _enableLaneConnectorToggle = featureGroup.AddCheckbox(
                T("Maintenance.Checkbox:Lane connector"),
                Options.laneConnectorEnabled,
                OnLaneConnectorEnabledChanged) as UICheckBox;

            Options.Indent(_turnOnRedEnabledToggle);
        }