internal static void MakeSettings_Maintenance(ExtUITabstrip tabStrip)
        {
            UIHelper     panelHelper      = tabStrip.AddTabPage(Translation.Options.Get("Tab:Maintenance"));
            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);

            // TODO [issue ##959] remove when TTL is implemented in asset editor.
            bool inEditor = (SerializableDataExtension.StateLoading || LoadingExtension.IsGameLoaded) &&
                            LoadingExtension.AppMode != AppMode.Game;
            if (inEditor)
            {
                EnableTimedLightsToggle.isChecked = false;
                EnableTimedLightsToggle.isEnabled = false;
                // since this is temprory I don't want to go through the trouble of creating translation key.
                EnableTimedLightsToggle.tooltip = "TTL is not yet supported in asset editor";
            }
        }
        internal static void MakeSettings_VehicleRestrictions(ExtUITabstrip tabStrip)
        {
            UIHelper     panelHelper      = tabStrip.AddTabPage(Translation.Options.Get("Tab:Policies & Restrictions"));
            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;
            Options.Indent(_allowFarTurnOnRedToggle);
            _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;
            DedicatedTurningLanes.AddUI(atJunctionsGroup);


            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);
        }
示例#3
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;
        }
示例#4
0
        internal static void MakeSettings_Maintenance(ExtUITabstrip tabStrip)
        {
            UIHelper     panelHelper      = tabStrip.AddTabPage(Translation.Options.Get("Tab:Maintenance"));
            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);
        }
示例#5
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;
            }
        }
        internal static void MakeSettings_General(ExtUITabstrip tabStrip)
        {
            UIHelper panelHelper = tabStrip.AddTabPage(T("Tab:General"));

            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;
        }
示例#8
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;
            }
        }
示例#9
0
        internal static void MakeSettings_General(ExtUITabstrip tabStrip)
        {
            UIHelper panelHelper = tabStrip.AddTabPage(T("Tab:General"));

            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(
                    lang: Translation.AvailableLanguageCodes[i],
                    key: "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(
                text: T("General.Dropdown:Select language") + ":",
                options: languageLabels,
                defaultSelection: languageIndex,
                eventCallback: OnLanguageChanged) as UIDropDown;
            _lockButtonToggle = generalGroup.AddCheckbox(
                text: T("General.Checkbox:Lock main menu button position"),
                defaultValue: GlobalConfig.Instance.Main.MainMenuButtonPosLocked,
                eventCallback: OnLockButtonChanged) as UICheckBox;
            _lockMenuToggle = generalGroup.AddCheckbox(
                text: T("General.Checkbox:Lock main menu window position"),
                defaultValue: GlobalConfig.Instance.Main.MainMenuPosLocked,
                eventCallback: OnLockMenuChanged) as UICheckBox;

            _guiScaleSlider = generalGroup.AddSlider(
                text: T("General.Slider:GUI scale") + ":",
                min: 50,
                max: 200,
                step: 5,
                defaultValue: GlobalConfig.Instance.Main.GuiScale,
                eventCallback: OnGuiScaleChanged) as UISlider;
            _guiScaleSlider.parent.Find <UILabel>("Label").width = 500;

            _guiOpacitySlider = generalGroup.AddSlider(
                text: T("General.Slider:Window transparency") + ":",
                min: 0,
                max: 100,
                step: 5,
                defaultValue: GlobalConfig.Instance.Main.GuiOpacity,
                eventCallback: OnGuiOpacityChanged) as UISlider;
            _guiOpacitySlider.parent.Find <UILabel>("Label").width = 500;

            _overlayTransparencySlider = generalGroup.AddSlider(
                text: T("General.Slider:Overlay transparency") + ":",
                min: 0,
                max: 100,
                step: 5,
                defaultValue: GlobalConfig.Instance.Main.OverlayTransparency,
                eventCallback: 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(
                text: Translation.ModConflicts.Get("Checkbox:Ignore disabled mods"),
                defaultValue: GlobalConfig.Instance.Main.IgnoreDisabledMods,
                eventCallback: OnIgnoreDisabledModsChanged) as UICheckBox;
            Options.Indent(_ignoreDisabledModsToggle);

            // General: Speed Limits
            SetupSpeedLimitsPanel(generalGroup);

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

            _simulationAccuracyDropdown = simGroup.AddDropdown(
                text: T("General.Dropdown:Simulation accuracy") + ":",
                options: 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"),
            },
                defaultSelection: (int)Options.simulationAccuracy,
                eventCallback: OnSimulationAccuracyChanged) as UIDropDown;

            _instantEffectsToggle = simGroup.AddCheckbox(
                text: T("General.Checkbox:Apply AI changes right away"),
                defaultValue: Options.instantEffects,
                eventCallback: OnInstantEffectsChanged) 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);
        }