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