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); }
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; }
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); }
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; }
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_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); }