private void SetupControls() { UIPanel panel = AddUIComponent <UIPanel>(); panel.gameObject.AddComponent <UICustomControl>(); panel.backgroundSprite = "UnlockingPanel"; panel.width = width - 10; panel.height = height - 75; panel.relativePosition = new Vector3(5, 0); // Max Speed UILabel maxSpeedLabel = panel.AddUIComponent <UILabel>(); maxSpeedLabel.text = "Maximum speed:"; maxSpeedLabel.textScale = 0.8f; maxSpeedLabel.relativePosition = new Vector3(15, 15); m_maxSpeed = UIUtils.CreateTextField(panel); m_maxSpeed.numericalOnly = true; m_maxSpeed.width = 75; m_maxSpeed.tooltip = "Change the maximum speed of the vehicle\nPlease note that vehicles do not go beyond speed limits"; m_maxSpeed.relativePosition = new Vector3(15, 35); UILabel kmh = panel.AddUIComponent <UILabel>(); kmh.text = "km/h"; kmh.textScale = 0.8f; kmh.relativePosition = new Vector3(95, 40); // Acceleration UILabel accelerationLabel = panel.AddUIComponent <UILabel>(); accelerationLabel.text = "Acceleration/Brake:"; accelerationLabel.textScale = 0.8f; accelerationLabel.relativePosition = new Vector3(160, 15); m_acceleration = UIUtils.CreateTextField(panel); m_acceleration.numericalOnly = true; m_acceleration.allowFloats = true; m_acceleration.width = 60; m_acceleration.tooltip = "Change the vehicle acceleration factor"; m_acceleration.relativePosition = new Vector3(160, 35); // Braking m_braking = UIUtils.CreateTextField(panel); m_braking.numericalOnly = true; m_braking.allowFloats = true; m_braking.width = 60; m_braking.tooltip = "Change the vehicle braking factor"; m_braking.relativePosition = new Vector3(230, 35); // Colors m_useColors = UIUtils.CreateCheckBox(panel); m_useColors.text = "Color variations:"; m_useColors.isChecked = true; m_useColors.width = width - 40; m_useColors.tooltip = "Enable color variations\nA random color is chosen between the four following colors"; m_useColors.relativePosition = new Vector3(15, 70); m_color0 = UIUtils.CreateColorField(panel); m_color0.name = "AVO-color0"; m_color0.popupTopmostRoot = false; m_color0.relativePosition = new Vector3(13, 95 - 2); m_color0_hex = UIUtils.CreateTextField(panel); m_color0_hex.maxLength = 6; m_color0_hex.relativePosition = new Vector3(55, 95); m_color1 = UIUtils.CreateColorField(panel); m_color1.name = "AVO-color1"; m_color1.popupTopmostRoot = false; m_color1.relativePosition = new Vector3(13, 120 - 2); m_color1_hex = UIUtils.CreateTextField(panel); m_color1_hex.maxLength = 6; m_color1_hex.relativePosition = new Vector3(55, 120); m_color2 = UIUtils.CreateColorField(panel); m_color2.name = "AVO-color2"; m_color2.popupTopmostRoot = false; m_color2.relativePosition = new Vector3(158, 95 - 2); m_color2_hex = UIUtils.CreateTextField(panel); m_color2_hex.maxLength = 6; m_color2_hex.relativePosition = new Vector3(200, 95); m_color3 = UIUtils.CreateColorField(panel); m_color3.name = "AVO-color3"; m_color3.popupTopmostRoot = false; m_color3.relativePosition = new Vector3(158, 120 - 2); m_color3_hex = UIUtils.CreateTextField(panel); m_color3_hex.maxLength = 6; m_color3_hex.relativePosition = new Vector3(200, 120); // Enable & BackEngine m_enabled = UIUtils.CreateCheckBox(panel); m_enabled.text = "Allow this vehicle to spawn"; m_enabled.isChecked = true; m_enabled.width = width - 40; m_enabled.tooltip = "Make sure you have at least one vehicle allowed to spawn for that category"; m_enabled.relativePosition = new Vector3(15, 155);; m_addBackEngine = UIUtils.CreateCheckBox(panel); m_addBackEngine.text = "Replace last car with engine"; m_addBackEngine.isChecked = false; m_addBackEngine.width = width - 40; m_addBackEngine.tooltip = "Make the last car of this train be an engine"; m_addBackEngine.relativePosition = new Vector3(15, 175); // Capacity UIPanel capacityPanel = panel.AddUIComponent <UIPanel>(); capacityPanel.size = Vector2.zero; capacityPanel.relativePosition = new Vector3(15, 200); UILabel capacityLabel = capacityPanel.AddUIComponent <UILabel>(); capacityLabel.text = "Capacity:"; capacityLabel.textScale = 0.8f; capacityLabel.relativePosition = Vector3.zero; m_capacity = UIUtils.CreateTextField(capacityPanel); m_capacity.numericalOnly = true; m_capacity.width = 110; m_capacity.tooltip = "Change the capacity of the vehicle"; m_capacity.relativePosition = new Vector3(0, 20); // Restore default m_restore = UIUtils.CreateButton(panel); m_restore.text = "Restore default"; m_restore.width = 130; m_restore.tooltip = "Restore all values to default"; m_restore.relativePosition = new Vector3(160, 215); // Remove Vehicles m_removeLabel = this.AddUIComponent <UILabel>(); m_removeLabel.text = "Remove vehicles:"; m_removeLabel.textScale = 0.8f; m_removeLabel.relativePosition = new Vector3(10, height - 60); m_clearVehicles = UIUtils.CreateButton(this); m_clearVehicles.text = "Driving"; m_clearVehicles.width = 90f; m_clearVehicles.tooltip = "Remove all driving vehicles of that type\nHold the SHIFT key to remove all types"; m_clearVehicles.relativePosition = new Vector3(10, height - 40); m_clearParked = UIUtils.CreateButton(this); m_clearParked.text = "Parked"; m_clearParked.width = 90f; m_clearParked.tooltip = "Remove all parked vehicles of that type\nHold the SHIFT key to remove all types"; m_clearParked.relativePosition = new Vector3(105, height - 40); panel.BringToFront(); // Event handlers m_maxSpeed.eventTextSubmitted += OnMaxSpeedSubmitted; m_acceleration.eventTextSubmitted += OnAccelerationSubmitted; m_braking.eventTextSubmitted += OnBrakingSubmitted; m_useColors.eventCheckChanged += OnCheckChanged; MouseEventHandler mousehandler = (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor((c as UIColorField).selectedColor); } }; m_color0.eventMouseEnter += mousehandler; m_color1.eventMouseEnter += mousehandler; m_color2.eventMouseEnter += mousehandler; m_color3.eventMouseEnter += mousehandler; m_color0_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color0.selectedColor); } }; m_color1_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color1.selectedColor); } }; m_color2_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color2.selectedColor); } }; m_color3_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color3.selectedColor); } }; m_color0.eventSelectedColorChanged += OnColorChanged; m_color1.eventSelectedColorChanged += OnColorChanged; m_color2.eventSelectedColorChanged += OnColorChanged; m_color3.eventSelectedColorChanged += OnColorChanged; m_color0_hex.eventTextSubmitted += OnColorHexSubmitted; m_color1_hex.eventTextSubmitted += OnColorHexSubmitted; m_color2_hex.eventTextSubmitted += OnColorHexSubmitted; m_color3_hex.eventTextSubmitted += OnColorHexSubmitted; m_enabled.eventCheckChanged += OnCheckChanged; m_addBackEngine.eventCheckChanged += OnCheckChanged; m_capacity.eventTextSubmitted += OnCapacitySubmitted; m_restore.eventClick += (c, p) => { m_initialized = false; bool isEnabled = m_options.enabled; DefaultOptions.Restore(m_options.prefab); VehicleOptions.UpdateTransfertVehicles(); VehicleOptions.prefabUpdateEngine = m_options.prefab; VehicleOptions.prefabUpdateUnits = m_options.prefab; new EnumerableActionThread(VehicleOptions.UpdateBackEngines); new EnumerableActionThread(VehicleOptions.UpdateCapacityUnits); Show(m_options); if (m_options.enabled != isEnabled) { eventEnableCheckChanged(this, m_options.enabled); } }; m_clearVehicles.eventClick += OnClearVehicleClicked; m_clearParked.eventClick += OnClearVehicleClicked; }
private void SetupControls() { UIPanel panel = AddUIComponent <UIPanel>(); panel.gameObject.AddComponent <UICustomControl>(); panel.backgroundSprite = "UnlockingPanel"; panel.width = width - 10; panel.height = height - 75; panel.relativePosition = new Vector3(5, 0); // Max Speed UILabel maxSpeedLabel = panel.AddUIComponent <UILabel>(); maxSpeedLabel.text = Translations.Translate("AVO_MOD_OP06"); maxSpeedLabel.textScale = 0.8f; maxSpeedLabel.relativePosition = new Vector3(15, 14); m_maxSpeed = UIUtils.CreateTextField(panel); m_maxSpeed.numericalOnly = true; m_maxSpeed.width = 75; m_maxSpeed.tooltip = Translations.Translate("AVO_MOD_OP07"); m_maxSpeed.relativePosition = new Vector3(15, 33); kmhLabel = panel.AddUIComponent <UILabel>(); kmhLabel.text = "km/h"; kmhLabel.textScale = 0.8f; kmhLabel.relativePosition = new Vector3(95, 38); // Acceleration UILabel accelerationLabel = panel.AddUIComponent <UILabel>(); accelerationLabel.text = Translations.Translate("AVO_MOD_OP08"); accelerationLabel.textScale = 0.8f; accelerationLabel.relativePosition = new Vector3(160, 13); m_acceleration = UIUtils.CreateTextField(panel); m_acceleration.numericalOnly = true; m_acceleration.allowFloats = true; m_acceleration.width = 60; m_acceleration.tooltip = Translations.Translate("AVO_MOD_OP09"); m_acceleration.relativePosition = new Vector3(160, 33); // Braking m_braking = UIUtils.CreateTextField(panel); m_braking.numericalOnly = true; m_braking.allowFloats = true; m_braking.width = 60; m_braking.tooltip = Translations.Translate("AVO_MOD_OP10"); m_braking.relativePosition = new Vector3(230, 33); // Turning m_turning = UIUtils.CreateTextField(panel); m_turning.numericalOnly = true; m_turning.allowFloats = true; m_turning.width = 60; m_turning.tooltip = Translations.Translate("AVO_MOD_OP11"); m_turning.relativePosition = new Vector3(300, 33); // Springs UILabel springsLabel = panel.AddUIComponent <UILabel>(); springsLabel.text = Translations.Translate("AVO_MOD_OP12"); springsLabel.textScale = 0.8f; springsLabel.relativePosition = new Vector3(15, 66); m_springs = UIUtils.CreateTextField(panel); m_springs.numericalOnly = true; m_springs.allowFloats = true; m_springs.width = 60; m_springs.tooltip = Translations.Translate("AVO_MOD_OP13"); m_springs.relativePosition = new Vector3(15, 85); // Dampers m_dampers = UIUtils.CreateTextField(panel); m_dampers.numericalOnly = true; m_dampers.allowFloats = true; m_dampers.width = 60; m_dampers.tooltip = Translations.Translate("AVO_MOD_OP14"); m_dampers.relativePosition = new Vector3(85, 85); // LeanMultiplier UILabel leanMultiplierLabel = panel.AddUIComponent <UILabel>(); leanMultiplierLabel.text = Translations.Translate("AVO_MOD_OP15"); leanMultiplierLabel.textScale = 0.8f; leanMultiplierLabel.relativePosition = new Vector3(160, 66); m_leanMultiplier = UIUtils.CreateTextField(panel); m_leanMultiplier.numericalOnly = true; m_leanMultiplier.allowFloats = true; m_leanMultiplier.width = 60; m_leanMultiplier.tooltip = Translations.Translate("AVO_MOD_OP16"); m_leanMultiplier.relativePosition = new Vector3(160, 85); // NodMultiplier m_nodMultiplier = UIUtils.CreateTextField(panel); m_nodMultiplier.numericalOnly = true; m_nodMultiplier.allowFloats = true; m_nodMultiplier.width = 60; m_nodMultiplier.tooltip = Translations.Translate("AVO_MOD_OP17"); m_nodMultiplier.relativePosition = new Vector3(230, 85); // Colors m_useColors = UIUtils.CreateCheckBox(panel); m_useColors.text = Translations.Translate("AVO_MOD_OP18"); m_useColors.isChecked = true; m_useColors.width = width - 40; m_useColors.tooltip = Translations.Translate("AVO_MOD_OP19"); m_useColors.relativePosition = new Vector3(15, 116); m_color0 = UIUtils.CreateColorField(panel); m_color0.name = "AVO-color0"; m_color0.popupTopmostRoot = false; m_color0.relativePosition = new Vector3(35, 135); m_color0_hex = UIUtils.CreateTextField(panel); m_color0_hex.maxLength = 6; m_color0_hex.relativePosition = new Vector3(80, 137); m_color1 = UIUtils.CreateColorField(panel); m_color1.name = "AVO-color1"; m_color1.popupTopmostRoot = false; m_color1.relativePosition = new Vector3(35, 160); m_color1_hex = UIUtils.CreateTextField(panel); m_color1_hex.maxLength = 6; m_color1_hex.relativePosition = new Vector3(80, 162); m_color2 = UIUtils.CreateColorField(panel); m_color2.name = "AVO-color2"; m_color2.popupTopmostRoot = false; m_color2.relativePosition = new Vector3(182, 135); m_color2_hex = UIUtils.CreateTextField(panel); m_color2_hex.maxLength = 6; m_color2_hex.relativePosition = new Vector3(225, 137); m_color3 = UIUtils.CreateColorField(panel); m_color3.name = "AVO-color3"; m_color3.popupTopmostRoot = false; m_color3.relativePosition = new Vector3(182, 160); m_color3_hex = UIUtils.CreateTextField(panel); m_color3_hex.maxLength = 6; m_color3_hex.relativePosition = new Vector3(225, 162); m_useColorsLabel = panel.AddUIComponent <UILabel>(); m_useColorsLabel.Hide(); m_useColorsLabel.textScale = 0.8f; m_useColorsLabel.text = Translations.Translate("AVO_MOD_OP20"); m_useColorsLabel.relativePosition = new Vector3(15, 116); // Enable & BackEngine m_enabled = UIUtils.CreateCheckBox(panel); m_enabled.text = Translations.Translate("AVO_MOD_OP21"); m_enabled.isChecked = true; m_enabled.width = width - 40; m_enabled.tooltip = Translations.Translate("AVO_MOD_OP22"); m_enabled.relativePosition = new Vector3(15, 195); m_addBackEngine = UIUtils.CreateCheckBox(panel); m_addBackEngine.text = Translations.Translate("AVO_MOD_OP23"); m_addBackEngine.isChecked = false; m_addBackEngine.width = width - 40; m_addBackEngine.tooltip = Translations.Translate("AVO_MOD_OP24"); m_addBackEngine.relativePosition = new Vector3(15, 215); // LargeVehicle Setting for NoBigTruck Delivery Mod m_isLargeVehicle = UIUtils.CreateCheckBox(panel); m_isLargeVehicle.text = Translations.Translate("AVO_MOD_OP25"); m_isLargeVehicle.width = width - 40; m_isLargeVehicle.tooltip = Translations.Translate("AVO_MOD_OP26"); m_isLargeVehicle.relativePosition = new Vector3(15, 215); // Capacity UIPanel capacityPanel = panel.AddUIComponent <UIPanel>(); capacityPanel.size = Vector2.zero; capacityPanel.relativePosition = new Vector3(15, 240); capacityLabel = capacityPanel.AddUIComponent <UILabel>(); capacityLabel.text = Translations.Translate("AVO_MOD_CAPA"); capacityLabel.textScale = 0.8f; capacityLabel.relativePosition = new Vector3(0, 2); m_capacity = UIUtils.CreateTextField(capacityPanel); m_capacity.numericalOnly = true; m_capacity.maxLength = 8; m_capacity.width = 100; m_capacity.tooltip = Translations.Translate("AVO_MOD_OP27"); m_capacity.relativePosition = new Vector3(0, 21); m_planesize = capacityPanel.AddUIComponent <UILabel>(); m_planesize.textScale = 0.8f; m_planesize.relativePosition = new Vector3(170, 2); // Special Capacity specialcapacityLabel = capacityPanel.AddUIComponent <UILabel>(); specialcapacityLabel.Hide(); specialcapacityLabel.text = Translations.Translate("AVO_MOD_OP28"); specialcapacityLabel.textScale = 0.8f; specialcapacityLabel.relativePosition = new Vector3(160, 2); m_specialcapacity = UIUtils.CreateTextField(capacityPanel); m_specialcapacity.Hide(); m_specialcapacity.numericalOnly = true; m_specialcapacity.maxLength = 8; m_specialcapacity.width = 100; m_specialcapacity.tooltip = Translations.Translate("AVO_MOD_OP29"); m_specialcapacity.relativePosition = new Vector3(160, 21); // Userguide Special Capacity Button m_userguidespecialcapacity = UIUtils.CreateButton(capacityPanel); m_userguidespecialcapacity.Hide(); m_userguidespecialcapacity.normalBgSprite = "EconomyMoreInfo"; m_userguidespecialcapacity.hoveredBgSprite = "EconomyMoreInfoHovered"; m_userguidespecialcapacity.size = new Vector2(14f, 14f); m_userguidespecialcapacity.tooltip = Translations.Translate("AVO_MOD_OP30"); m_userguidespecialcapacity.relativePosition = new Vector3(265, 24); // Transport Line Overview Button m_lineoverview = UIUtils.CreateButton(panel); m_lineoverview.Hide(); m_lineoverview.textScale = 0.8f; m_lineoverview.height = 18; m_lineoverview.textVerticalAlignment = UIVerticalAlignment.Bottom; m_lineoverview.text = Translations.Translate("AVO_MOD_OP31"); m_lineoverview.width = 335; m_lineoverview.tooltip = Translations.Translate("AVO_MOD_OP32"); m_lineoverview.relativePosition = new Vector3(15, 194); // Userguide Spawn Button m_userguidespawn = UIUtils.CreateButton(panel); m_userguidespawn.Hide(); m_userguidespawn.normalBgSprite = "EconomyMoreInfo"; m_userguidespawn.hoveredBgSprite = "EconomyMoreInfoHovered"; m_userguidespawn.size = new Vector2(14f, 14f); m_userguidespawn.tooltip = Translations.Translate("AVO_MOD_OP33"); m_userguidespawn.relativePosition = new Vector3(355, 195); // Buslabel bustrailerLabel = panel.AddUIComponent <UILabel>(); bustrailerLabel.textScale = 0.8f; bustrailerLabel.text = Translations.Translate("AVO_MOD_OP34"); bustrailerLabel.relativePosition = new Vector3(15, 194); // Restore default m_restore = UIUtils.CreateButton(panel); m_restore.text = Translations.Translate("AVO_MOD_OP35"); m_restore.width = 120; m_restore.tooltip = Translations.Translate("AVO_MOD_OP36"); m_restore.relativePosition = new Vector3(250, height - 45); // Remove Vehicles m_removeLabel = this.AddUIComponent <UILabel>(); m_removeLabel.text = Translations.Translate("AVO_MOD_OP37"); m_removeLabel.textScale = 0.8f; m_removeLabel.relativePosition = new Vector3(10, height - 65); m_clearVehicles = UIUtils.CreateButton(this); m_clearVehicles.text = Translations.Translate("AVO_MOD_OP38"); m_clearVehicles.width = 120; m_clearVehicles.tooltip = Translations.Translate("AVO_MOD_OP39"); m_clearVehicles.relativePosition = new Vector3(5, height - 45); m_clearParked = UIUtils.CreateButton(this); m_clearParked.text = Translations.Translate("AVO_MOD_OP40"); m_clearParked.width = 120; m_clearParked.tooltip = Translations.Translate("AVO_MOD_OP41"); m_clearParked.relativePosition = new Vector3(130, height - 45); panel.BringToFront(); // Event handlers m_maxSpeed.eventTextSubmitted += OnMaxSpeedSubmitted; m_acceleration.eventTextSubmitted += OnAccelerationSubmitted; m_braking.eventTextSubmitted += OnBrakingSubmitted; m_turning.eventTextSubmitted += OnTurningSubmitted; m_springs.eventTextSubmitted += OnSpringsSubmitted; m_dampers.eventTextSubmitted += OnDampersSubmitted; m_leanMultiplier.eventTextSubmitted += OnleanMultiplierSubmitted; m_nodMultiplier.eventTextSubmitted += OnnodMultiplierSubmitted; m_useColors.eventCheckChanged += OnCheckChanged; MouseEventHandler mousehandler = (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor((c as UIColorField).selectedColor); } }; m_color0.eventMouseEnter += mousehandler; m_color1.eventMouseEnter += mousehandler; m_color2.eventMouseEnter += mousehandler; m_color3.eventMouseEnter += mousehandler; m_color0_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color0.selectedColor); } }; m_color1_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color1.selectedColor); } }; m_color2_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color2.selectedColor); } }; m_color3_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color3.selectedColor); } }; m_color0.eventSelectedColorChanged += OnColorChanged; m_color1.eventSelectedColorChanged += OnColorChanged; m_color2.eventSelectedColorChanged += OnColorChanged; m_color3.eventSelectedColorChanged += OnColorChanged; m_color0_hex.eventTextSubmitted += OnColorHexSubmitted; m_color1_hex.eventTextSubmitted += OnColorHexSubmitted; m_color2_hex.eventTextSubmitted += OnColorHexSubmitted; m_color3_hex.eventTextSubmitted += OnColorHexSubmitted; m_enabled.eventCheckChanged += OnCheckChanged; m_addBackEngine.eventCheckChanged += OnCheckChanged; m_isLargeVehicle.eventCheckChanged += OnCheckChanged; m_capacity.eventTextSubmitted += OnCapacitySubmitted; m_specialcapacity.eventTextSubmitted += OnSpecialCapacitySubmitted; m_restore.eventClick += (c, p) => { m_initialized = false; bool isEnabled = m_options.enabled; DefaultOptions.Restore(m_options.prefab); VehicleOptions.UpdateTransfertVehicles(); VehicleOptions.prefabUpdateEngine = m_options.prefab; VehicleOptions.prefabUpdateUnits = m_options.prefab; SimulationManager.instance.AddAction(VehicleOptions.UpdateBackEngines); SimulationManager.instance.AddAction(VehicleOptions.UpdateCapacityUnits); Show(m_options); if (m_options.enabled != isEnabled) { eventEnableCheckChanged(this, m_options.enabled); } }; m_clearVehicles.eventClick += OnClearVehicleClicked; m_clearParked.eventClick += OnClearVehicleClicked; m_lineoverview.eventClick += OnlineoverviewClicked; m_userguidespawn.eventClick += OnUserGuideSpawnClicked; m_userguidespecialcapacity.eventClick += OnUserGuideSpecialCapacityClicked; }
private void SetupControls() { UIPanel panel = AddUIComponent <UIPanel>(); panel.gameObject.AddComponent <UICustomControl>(); panel.backgroundSprite = "UnlockingPanel"; panel.width = width - 10; panel.height = height - 75; panel.relativePosition = new Vector3(5, 0); // Max Speed UILabel maxSpeedLabel = panel.AddUIComponent <UILabel>(); maxSpeedLabel.text = "Maximum speed:"; maxSpeedLabel.textScale = 0.8f; maxSpeedLabel.relativePosition = new Vector3(15, 14); m_maxSpeed = UIUtils.CreateTextField(panel); m_maxSpeed.numericalOnly = true; m_maxSpeed.width = 75; m_maxSpeed.tooltip = "Change the maximum speed of the vehicle\nPlease note that vehicles do not go beyond speed limits"; m_maxSpeed.relativePosition = new Vector3(15, 33); kmhLabel = panel.AddUIComponent <UILabel>(); kmhLabel.text = "km/h"; kmhLabel.textScale = 0.8f; kmhLabel.relativePosition = new Vector3(95, 38); // Acceleration UILabel accelerationLabel = panel.AddUIComponent <UILabel>(); accelerationLabel.text = "Acceleration/Brake/Turning:"; accelerationLabel.textScale = 0.8f; accelerationLabel.relativePosition = new Vector3(160, 13); m_acceleration = UIUtils.CreateTextField(panel); m_acceleration.numericalOnly = true; m_acceleration.allowFloats = true; m_acceleration.width = 60; m_acceleration.tooltip = "Change the vehicle acceleration factor"; m_acceleration.relativePosition = new Vector3(160, 33); // Braking m_braking = UIUtils.CreateTextField(panel); m_braking.numericalOnly = true; m_braking.allowFloats = true; m_braking.width = 60; m_braking.tooltip = "Change the vehicle braking factor"; m_braking.relativePosition = new Vector3(230, 33); // Turning m_turning = UIUtils.CreateTextField(panel); m_turning.numericalOnly = true; m_turning.allowFloats = true; m_turning.width = 60; m_turning.tooltip = "Change the vehicle turning factor;\nDefines how well the car corners"; m_turning.relativePosition = new Vector3(300, 33); // Springs UILabel springsLabel = panel.AddUIComponent <UILabel>(); springsLabel.text = "Springs/Dampers:"; springsLabel.textScale = 0.8f; springsLabel.relativePosition = new Vector3(15, 66); m_springs = UIUtils.CreateTextField(panel); m_springs.numericalOnly = true; m_springs.allowFloats = true; m_springs.width = 60; m_springs.tooltip = "Change the vehicle spring factor;\nDefines how much the suspension moves"; m_springs.relativePosition = new Vector3(15, 85); // Dampers m_dampers = UIUtils.CreateTextField(panel); m_dampers.numericalOnly = true; m_dampers.allowFloats = true; m_dampers.width = 60; m_dampers.tooltip = "Change the vehicle damper factor;\nDefines how quickly the suspension returns to the default state"; m_dampers.relativePosition = new Vector3(85, 85); // LeanMultiplier UILabel leanMultiplierLabel = panel.AddUIComponent <UILabel>(); leanMultiplierLabel.text = "Lean/Nod Multiplier:"; leanMultiplierLabel.textScale = 0.8f; leanMultiplierLabel.relativePosition = new Vector3(160, 66); m_leanMultiplier = UIUtils.CreateTextField(panel); m_leanMultiplier.numericalOnly = true; m_leanMultiplier.allowFloats = true; m_leanMultiplier.width = 60; m_leanMultiplier.tooltip = "Change the vehicle lean multiplication factor;\nDefines how much the vehicle leans to the sides when turning"; m_leanMultiplier.relativePosition = new Vector3(160, 85); // NodMultiplier m_nodMultiplier = UIUtils.CreateTextField(panel); m_nodMultiplier.numericalOnly = true; m_nodMultiplier.allowFloats = true; m_nodMultiplier.width = 60; m_nodMultiplier.tooltip = "Change the vehicle nod multiplication factor;\nDefines how much the vehicle nods forward/backward when braking or accelerating"; m_nodMultiplier.relativePosition = new Vector3(230, 85); // Colors m_useColors = UIUtils.CreateCheckBox(panel); m_useColors.text = "Enable Color variations:"; m_useColors.isChecked = true; m_useColors.width = width - 40; m_useColors.tooltip = "Enable color variations\nA random color is chosen between the four following colors"; m_useColors.relativePosition = new Vector3(15, 116); m_color0 = UIUtils.CreateColorField(panel); m_color0.name = "AVO-color0"; m_color0.popupTopmostRoot = false; m_color0.relativePosition = new Vector3(35, 135); m_color0_hex = UIUtils.CreateTextField(panel); m_color0_hex.maxLength = 6; m_color0_hex.relativePosition = new Vector3(80, 137); m_color1 = UIUtils.CreateColorField(panel); m_color1.name = "AVO-color1"; m_color1.popupTopmostRoot = false; m_color1.relativePosition = new Vector3(35, 160); m_color1_hex = UIUtils.CreateTextField(panel); m_color1_hex.maxLength = 6; m_color1_hex.relativePosition = new Vector3(80, 162); m_color2 = UIUtils.CreateColorField(panel); m_color2.name = "AVO-color2"; m_color2.popupTopmostRoot = false; m_color2.relativePosition = new Vector3(182, 135); m_color2_hex = UIUtils.CreateTextField(panel); m_color2_hex.maxLength = 6; m_color2_hex.relativePosition = new Vector3(225, 137); m_color3 = UIUtils.CreateColorField(panel); m_color3.name = "AVO-color3"; m_color3.popupTopmostRoot = false; m_color3.relativePosition = new Vector3(182, 160); m_color3_hex = UIUtils.CreateTextField(panel); m_color3_hex.maxLength = 6; m_color3_hex.relativePosition = new Vector3(225, 162); m_useColorsLabel = panel.AddUIComponent <UILabel>(); m_useColorsLabel.Hide(); m_useColorsLabel.textScale = 0.8f; m_useColorsLabel.text = "Colors are managed by Vehicle Color Expander"; m_useColorsLabel.relativePosition = new Vector3(15, 116); // Enable & BackEngine m_enabled = UIUtils.CreateCheckBox(panel); m_enabled.text = "Allow this vehicle to spawn"; m_enabled.isChecked = true; m_enabled.width = width - 40; m_enabled.tooltip = "Make sure you have at least one vehicle allowed to spawn for that category"; m_enabled.relativePosition = new Vector3(15, 195);; m_addBackEngine = UIUtils.CreateCheckBox(panel); m_addBackEngine.text = "Replace last car with engine"; m_addBackEngine.isChecked = false; m_addBackEngine.width = width - 40; m_addBackEngine.tooltip = "Make the last car of this train be an engine"; m_addBackEngine.relativePosition = new Vector3(15, 215); // LargeVehicle Setting for NoBigTruck Delivery Mod m_isLargeVehicle = UIUtils.CreateCheckBox(panel); m_isLargeVehicle.text = "Flag as Large Vehicle"; m_isLargeVehicle.width = width - 40; m_isLargeVehicle.tooltip = "Prevent vehicles with trailer to deliver to small buildings\n\nNeeds No Big Trucks mod to work"; m_isLargeVehicle.relativePosition = new Vector3(15, 215); // Capacity UIPanel capacityPanel = panel.AddUIComponent <UIPanel>(); capacityPanel.size = Vector2.zero; capacityPanel.relativePosition = new Vector3(15, 240); capacityLabel = capacityPanel.AddUIComponent <UILabel>(); capacityLabel.text = "Capacity: "; capacityLabel.textScale = 0.8f; capacityLabel.relativePosition = new Vector3(0, 2); m_capacity = UIUtils.CreateTextField(capacityPanel); m_capacity.numericalOnly = true; m_capacity.maxLength = 8; m_capacity.width = 100; m_capacity.tooltip = "Change the capacity of the vehicle"; m_capacity.relativePosition = new Vector3(0, 21); // Special Capacity specialcapacityLabel = capacityPanel.AddUIComponent <UILabel>(); specialcapacityLabel.Hide(); specialcapacityLabel.text = "Special Capacity: "; specialcapacityLabel.textScale = 0.8f; specialcapacityLabel.relativePosition = new Vector3(160, 2); m_specialcapacity = UIUtils.CreateTextField(capacityPanel); m_specialcapacity.Hide(); m_specialcapacity.numericalOnly = true; m_specialcapacity.maxLength = 8; m_specialcapacity.width = 100; m_specialcapacity.tooltip = "Change special parameters of the vehicle"; m_specialcapacity.relativePosition = new Vector3(160, 21); // Userguide Special Capacity Button m_userguidespecialcapacity = UIUtils.CreateButton(capacityPanel); m_userguidespecialcapacity.Hide(); m_userguidespecialcapacity.normalBgSprite = "EconomyMoreInfo"; m_userguidespecialcapacity.hoveredBgSprite = "EconomyMoreInfoHovered"; m_userguidespecialcapacity.size = new Vector2(14f, 14f); m_userguidespecialcapacity.tooltip = "If you do not know, what this value is:\nDo not touch it!\n\nClick for User Guide: Special Capacity"; m_userguidespecialcapacity.relativePosition = new Vector3(265, 24); // Transport Line Overview Button m_lineoverview = UIUtils.CreateButton(panel); m_lineoverview.Hide(); m_lineoverview.textScale = 0.8f; m_lineoverview.height = 18; m_lineoverview.textVerticalAlignment = UIVerticalAlignment.Bottom; m_lineoverview.text = "Manage Spawning in Transport Line Overview"; m_lineoverview.width = 335; m_lineoverview.tooltip = "Open the Transport Line Overview and manage the vehicle spawning"; m_lineoverview.relativePosition = new Vector3(15, 194); // Userguide Spawn Button m_userguidespawn = UIUtils.CreateButton(panel); m_userguidespawn.Hide(); m_userguidespawn.normalBgSprite = "EconomyMoreInfo"; m_userguidespawn.hoveredBgSprite = "EconomyMoreInfoHovered"; m_userguidespawn.size = new Vector2(14f, 14f); m_userguidespawn.tooltip = "Click for User Guide: Spawn Control"; m_userguidespawn.relativePosition = new Vector3(355, 195); // Buslabel bustrailerLabel = panel.AddUIComponent <UILabel>(); bustrailerLabel.textScale = 0.8f; bustrailerLabel.text = "Bus trailers spawning is controlled by the main\n" + "Bus vehicle. Settings must be configured from\n" + "the Transport Line Overview panel."; bustrailerLabel.relativePosition = new Vector3(15, 194); // Restore default m_restore = UIUtils.CreateButton(panel); m_restore.text = "Default Values"; m_restore.width = 120; m_restore.tooltip = "Restore all values to default"; m_restore.relativePosition = new Vector3(250, height - 45); // Remove Vehicles m_removeLabel = this.AddUIComponent <UILabel>(); m_removeLabel.text = "Global Actions for: "; m_removeLabel.textScale = 0.8f; m_removeLabel.relativePosition = new Vector3(10, height - 65); m_clearVehicles = UIUtils.CreateButton(this); m_clearVehicles.text = "Remove Driving"; m_clearVehicles.width = 120; m_clearVehicles.tooltip = "Remove all driving vehicles of that type\nHold the SHIFT key to remove all types"; m_clearVehicles.relativePosition = new Vector3(5, height - 45); m_clearParked = UIUtils.CreateButton(this); m_clearParked.text = "Remove Parked"; m_clearParked.width = 120; m_clearParked.tooltip = "Remove all parked vehicles of that type\nHold the SHIFT key to remove all types"; m_clearParked.relativePosition = new Vector3(130, height - 45); panel.BringToFront(); // Event handlers m_maxSpeed.eventTextSubmitted += OnMaxSpeedSubmitted; m_acceleration.eventTextSubmitted += OnAccelerationSubmitted; m_braking.eventTextSubmitted += OnBrakingSubmitted; m_turning.eventTextSubmitted += OnTurningSubmitted; m_springs.eventTextSubmitted += OnSpringsSubmitted; m_dampers.eventTextSubmitted += OnDampersSubmitted; m_leanMultiplier.eventTextSubmitted += OnleanMultiplierSubmitted; m_nodMultiplier.eventTextSubmitted += OnnodMultiplierSubmitted; m_useColors.eventCheckChanged += OnCheckChanged; MouseEventHandler mousehandler = (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor((c as UIColorField).selectedColor); } }; m_color0.eventMouseEnter += mousehandler; m_color1.eventMouseEnter += mousehandler; m_color2.eventMouseEnter += mousehandler; m_color3.eventMouseEnter += mousehandler; m_color0_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color0.selectedColor); } }; m_color1_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color1.selectedColor); } }; m_color2_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color2.selectedColor); } }; m_color3_hex.eventMouseEnter += (c, p) => { if (m_initialized) { (parent as UIMainPanel).ChangePreviewColor(m_color3.selectedColor); } }; m_color0.eventSelectedColorChanged += OnColorChanged; m_color1.eventSelectedColorChanged += OnColorChanged; m_color2.eventSelectedColorChanged += OnColorChanged; m_color3.eventSelectedColorChanged += OnColorChanged; m_color0_hex.eventTextSubmitted += OnColorHexSubmitted; m_color1_hex.eventTextSubmitted += OnColorHexSubmitted; m_color2_hex.eventTextSubmitted += OnColorHexSubmitted; m_color3_hex.eventTextSubmitted += OnColorHexSubmitted; m_enabled.eventCheckChanged += OnCheckChanged; m_addBackEngine.eventCheckChanged += OnCheckChanged; m_isLargeVehicle.eventCheckChanged += OnCheckChanged; m_capacity.eventTextSubmitted += OnCapacitySubmitted; m_specialcapacity.eventTextSubmitted += OnSpecialCapacitySubmitted; m_restore.eventClick += (c, p) => { m_initialized = false; bool isEnabled = m_options.enabled; DefaultOptions.Restore(m_options.prefab); VehicleOptions.UpdateTransfertVehicles(); VehicleOptions.prefabUpdateEngine = m_options.prefab; VehicleOptions.prefabUpdateUnits = m_options.prefab; new EnumerableActionThread(VehicleOptions.UpdateBackEngines); new EnumerableActionThread(VehicleOptions.UpdateCapacityUnits); Show(m_options); if (m_options.enabled != isEnabled) { eventEnableCheckChanged(this, m_options.enabled); } }; m_clearVehicles.eventClick += OnClearVehicleClicked; m_clearParked.eventClick += OnClearVehicleClicked; m_lineoverview.eventClick += OnlineoverviewClicked; m_userguidespawn.eventClick += OnUserGuideSpawnClicked; m_userguidespecialcapacity.eventClick += OnUserGuideSpecialCapacityClicked; }