@@ -185,7 +185,7 @@ private void CreateMenu()
185185 GetLabelText ( "CMOD_PLA_2" ) , // Plate Index 2 // BlueOnWhite3
186186 GetLabelText ( "CMOD_PLA_3" ) , // Plate Index 3 // YellowOnBlue
187187 GetLabelText ( "CMOD_PLA_4" ) , // Plate Index 4 // YellowOnBlack
188- "North Yankton" , // Plate Index 5 // NorthYankton
188+ GetLabelText ( "PROL" ) , // Plate Index 5 // NorthYankton
189189 GetLabelText ( "CMOD_PLA_6" ) , // Plate Index 6 // ECola
190190 GetLabelText ( "CMOD_PLA_7" ) , // Plate Index 7 // LasVenturas
191191 GetLabelText ( "CMOD_PLA_8" ) , // Plate Index 8 // LibertyCity
@@ -1028,21 +1028,35 @@ private void CreateMenu()
10281028 #endregion
10291029
10301030 #region Vehicle Colors Submenu Stuff
1031+ // color customization menu
1032+ var customizeColorMenu = new Menu ( "Vehicle Colors" , "Customize Colors" ) ;
1033+ MenuController . AddSubmenu ( VehicleColorsMenu , customizeColorMenu ) ;
1034+
1035+ var colorsCustomizationBtn = new MenuItem ( "Customize Colors" ) { Label = "→→→" } ;
1036+ VehicleColorsMenu . AddMenuItem ( colorsCustomizationBtn ) ;
1037+ MenuController . BindMenuItem ( VehicleColorsMenu , customizeColorMenu , colorsCustomizationBtn ) ;
1038+
10311039 // primary menu
10321040 var primaryColorsMenu = new Menu ( "Vehicle Colors" , "Primary Colors" ) ;
1033- MenuController . AddSubmenu ( VehicleColorsMenu , primaryColorsMenu ) ;
1041+ MenuController . AddSubmenu ( customizeColorMenu , primaryColorsMenu ) ;
10341042
10351043 var primaryColorsBtn = new MenuItem ( "Primary Color" ) { Label = "→→→" } ;
1036- VehicleColorsMenu . AddMenuItem ( primaryColorsBtn ) ;
1037- MenuController . BindMenuItem ( VehicleColorsMenu , primaryColorsMenu , primaryColorsBtn ) ;
1044+ customizeColorMenu . AddMenuItem ( primaryColorsBtn ) ;
1045+ MenuController . BindMenuItem ( customizeColorMenu , primaryColorsMenu , primaryColorsBtn ) ;
10381046
10391047 // secondary menu
10401048 var secondaryColorsMenu = new Menu ( "Vehicle Colors" , "Secondary Colors" ) ;
1041- MenuController . AddSubmenu ( VehicleColorsMenu , secondaryColorsMenu ) ;
1049+ MenuController . AddSubmenu ( customizeColorMenu , secondaryColorsMenu ) ;
10421050
10431051 var secondaryColorsBtn = new MenuItem ( "Secondary Color" ) { Label = "→→→" } ;
1044- VehicleColorsMenu . AddMenuItem ( secondaryColorsBtn ) ;
1045- MenuController . BindMenuItem ( VehicleColorsMenu , secondaryColorsMenu , secondaryColorsBtn ) ;
1052+ customizeColorMenu . AddMenuItem ( secondaryColorsBtn ) ;
1053+ MenuController . BindMenuItem ( customizeColorMenu , secondaryColorsMenu , secondaryColorsBtn ) ;
1054+
1055+ var presetColorsBtn = new MenuListItem ( "Preset Colors" , [ ] , 0 ) ;
1056+ customizeColorMenu . AddMenuItem ( presetColorsBtn ) ;
1057+
1058+ var chrome = new MenuItem ( "Chrome" ) ;
1059+ customizeColorMenu . AddMenuItem ( chrome ) ;
10461060
10471061 // color lists
10481062 var classic = new List < string > ( ) ;
@@ -1108,25 +1122,8 @@ private void CreateMenu()
11081122 var intColorList = new MenuListItem ( "Interior / Trim Color" , classic , 0 ) ;
11091123 var vehicleEnveffScale = new MenuSliderItem ( "Vehicle Enveff Scale" , "This works on certain vehicles only, like the besra for example. It 'fades' certain paint layers." , 0 , 20 , 10 , true ) ;
11101124
1111- var chrome = new MenuItem ( "Chrome" ) ;
1112- VehicleColorsMenu . AddMenuItem ( chrome ) ;
11131125 VehicleColorsMenu . AddMenuItem ( vehicleEnveffScale ) ;
11141126
1115- VehicleColorsMenu . OnItemSelect += ( sender , item , index ) =>
1116- {
1117- var veh = GetVehicle ( ) ;
1118- if ( veh != null && veh . Exists ( ) && ! veh . IsDead && veh . Driver == Game . PlayerPed )
1119- {
1120- if ( item == chrome )
1121- {
1122- SetVehicleColours ( veh . Handle , 120 , 120 ) ; // chrome is index 120
1123- }
1124- }
1125- else
1126- {
1127- Notify . Error ( "You need to be the driver of a driveable vehicle to change this." ) ;
1128- }
1129- } ;
11301127 VehicleColorsMenu . OnSliderPositionChange += ( m , sliderItem , oldPosition , newPosition , itemIndex ) =>
11311128 {
11321129 var veh = GetVehicle ( ) ;
@@ -1309,7 +1306,7 @@ async void HandleItemSelect(Menu menu, MenuItem menuItem, int itemIndex)
13091306
13101307 for ( var i = 0 ; i < 2 ; i ++ )
13111308 {
1312- var customColour = new MenuItem ( "Custom RGB" ) { Label = ">>> " } ;
1309+ var customColour = new MenuItem ( "Custom RGB" ) { Label = "→→→ " } ;
13131310 var pearlescentList = new MenuListItem ( "Pearlescent" , classic , 0 ) ;
13141311 var classicList = new MenuListItem ( "Classic" , classic , 0 ) ;
13151312 var metallicList = new MenuListItem ( "Metallic" , classic , 0 ) ;
@@ -1353,6 +1350,66 @@ async void HandleItemSelect(Menu menu, MenuItem menuItem, int itemIndex)
13531350 secondaryColorsMenu . OnItemSelect += HandleItemSelect ;
13541351 }
13551352 }
1353+
1354+ customizeColorMenu . OnMenuOpen += ( _ ) =>
1355+ {
1356+ int numVehColors = GetNumberOfVehicleColours ( GetVehicle ( ) . Handle ) ;
1357+
1358+ if ( numVehColors == 0 )
1359+ {
1360+ presetColorsBtn . Enabled = false ;
1361+ presetColorsBtn . ListItems = [ "No Preset Colors" ] ;
1362+ presetColorsBtn . ListIndex = 0 ;
1363+ return ;
1364+ }
1365+
1366+ List < string > colorOptions = [ ] ;
1367+
1368+ presetColorsBtn . Enabled = true ;
1369+
1370+ for ( int i = 0 ; i < numVehColors ; i ++ )
1371+ {
1372+ colorOptions . Add ( $ "Preset Color #{ i + 1 } ") ;
1373+ }
1374+
1375+ int currentColor = GetVehicleColourCombination ( GetVehicle ( ) . Handle ) ;
1376+
1377+ presetColorsBtn . ListItems = colorOptions ;
1378+ presetColorsBtn . ListIndex = currentColor < 0 ? 0 : currentColor ;
1379+ } ;
1380+
1381+ customizeColorMenu . OnItemSelect += ( _ , item , _ ) =>
1382+ {
1383+ var veh = GetVehicle ( ) ;
1384+ if ( veh != null && veh . Exists ( ) && ! veh . IsDead && veh . Driver == Game . PlayerPed )
1385+ {
1386+ if ( item == chrome )
1387+ {
1388+ SetVehicleColours ( veh . Handle , 120 , 120 ) ; // chrome is index 120
1389+ }
1390+ }
1391+ else
1392+ {
1393+ Notify . Error ( "You need to be the driver of a driveable vehicle to change this." ) ;
1394+ }
1395+ } ;
1396+
1397+ customizeColorMenu . OnListItemSelect += ( _ , _ , index , _ ) => ChangeVehiclePresetColor ( index ) ;
1398+
1399+ customizeColorMenu . OnListIndexChange += ( _ , _ , _ , index , _ ) => ChangeVehiclePresetColor ( index ) ;
1400+
1401+ void ChangeVehiclePresetColor ( int index )
1402+ {
1403+ var veh = GetVehicle ( ) ;
1404+ if ( veh != null && veh . Exists ( ) && ! veh . IsDead && veh . Driver == Game . PlayerPed )
1405+ {
1406+ SetVehicleColourCombination ( veh . Handle , index ) ;
1407+ }
1408+ else
1409+ {
1410+ Notify . Error ( "You need to be the driver of a driveable vehicle to change this." ) ;
1411+ }
1412+ }
13561413 #endregion
13571414
13581415 #region Vehicle Doors Submenu Stuff
0 commit comments