System.Collections.Generic.List.Contains(VehicleColor)

Here are the examples of the csharp api System.Collections.Generic.List.Contains(VehicleColor) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

19 Source : DevVehicleMenu.cs
with MIT License
from GroovyGiantPanda

public override void Refresh()
            {
                var _menuItems = new List<MenuItem>();
                if (Game.PlayerPed.Exists() && Game.PlayerPed.IsInVehicle())
                {
                    if (vehicle != Game.PlayerPed.CurrentVehicle)
                    {
                        vehicle = Game.PlayerPed.CurrentVehicle;
                        vehicle.Mods.InstallModKit();
                    }
                    try
                    {
                        int selectedVehicleIndex = VehicleHashValues.Contains((VehicleHash)vehicle.Model.Hash) ? VehicleHashValues.IndexOf((VehicleHash)vehicle.Model.Hash) : VehicleHashValues.IndexOf(VehicleHash.Monster);
                        VehicleColor primaryColor = vehicle.Mods.PrimaryColor;
                        VehicleColor secondaryColor = vehicle.Mods.SecondaryColor;
                        VehicleColor pearlescentColor = vehicle.Mods.PearlescentColor;
                        VehicleColor RimColor = vehicle.Mods.RimColor;
                        VehicleWheelType WheelType = (VehicleWheelType)Function.Call<int>(Hash.GET_VEHICLE_WHEEL_TYPE, vehicle.Handle);
                        int LiveryCount = vehicle.Mods.LiveryCount;
                        int Livery = vehicle.Mods.Livery;

                        // R/G/B selection?
                        //System.Drawing.Color NeonLightsColor = vehicle.Mods.NeonLightsColor;

                        // Do we even want this one?
                        //LicensePlateStyle LicensePlateStyle = vehicle.Mods.LicensePlateStyle;

                        // I have gotten several requests not to implement tire smoke (realism level -150)

                        VehicleMod[] AllMods = vehicle.Mods.GetAllMods();
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Vehicle",
                            Description = "Activate to replace your current vehicle.",
                            state = menuItems[0] is MenuItemHorNamedSelector ? (menuItems[0] as MenuItemHorNamedSelector).state : selectedVehicleIndex,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleHashNames,
                            OnActivate = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await ReplaceCurrentVehicleByIndex(selectedAlternative); })
                        });
                        if (LiveryCount != -1)
                        {
                            if (Livery == -1) vehicle.Mods.Livery = 1;
                            _menuItems.Add(new MenuItemHorSelector<int>
                            {
                                replacedle = $@"Livery",
                                state = menuItems.Count > 1 ? ((MenuItemHorSelector<int>)menuItems[1]).state : 1,
                                Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                wrapAround = true,
                                minState = 1,
                                maxState = LiveryCount,
                                overrideDetailWith = vehicle.Mods.LocalizedLiveryName != "" ? $"{vehicle.Mods.LocalizedLiveryName}" : "",
                                OnChange = new Action<int, MenuItemHorSelector<int>>((selectedAlternative, menuItem) => { vehicle.Mods.Livery = selectedAlternative; })
                            });
                        }
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Primary Color",
                            state = VehicleColorValues.Contains(primaryColor) ? VehicleColorValues.IndexOf(primaryColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 0); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Secondary Color",
                            state = VehicleColorValues.Contains(secondaryColor) ? VehicleColorValues.IndexOf(secondaryColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 1); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Pearlescent Color",
                            state = VehicleColorValues.Contains(pearlescentColor) ? VehicleColorValues.IndexOf(pearlescentColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 2); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Rim Color",
                            state = VehicleColorValues.Contains(RimColor) ? VehicleColorValues.IndexOf(RimColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 3); })
                        });
                        var allowedWheelTypes = vehicle.Mods.AllowedWheelTypes.ToList();
                        if(allowedWheelTypes.Contains(VehicleWheelType.HighEnd)) allowedWheelTypes.Remove(VehicleWheelType.HighEnd); // Removing for now, seems to not want to set this
                        // Wheel Types not a thing for bikes I believe; real and front wheel already a mod category
                        if (vehicle.Model.IsCar && allowedWheelTypes.Count() > 0)
                        {
                            _menuItems.Add(new MenuItemHorNamedSelector
                            {
                                replacedle = $"Wheel Type",
                                state = allowedWheelTypes.ToList().Contains(WheelType) ? (int)WheelType : (int)allowedWheelTypes[0],
                                Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                wrapAround = true,
                                optionList = allowedWheelTypes.Select(i => $"{i}").ToList(),
                                OnChange = new Action<int, string, MenuItemHorNamedSelector>((selectedAlternative, selName, menuItem) => { vehicle.Mods.WheelType = (VehicleWheelType)selectedAlternative; vehicle.Mods[VehicleModType.FrontWheel].Index = 0; })
                            });
                        }
                        AllMods.ToList().ForEach(m =>
                        {
                            try
                            { 
                                _menuItems.Add(new MenuItemHorSelector<int>
                                {
                                    replacedle = $@"{m.LocalizedModTypeName}",
                                    state = (m.Index >= -1 && m.Index <= m.ModCount - 1) ? m.Index : 0,
                                    Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                    wrapAround = true,
                                    minState = -1,
                                    maxState = m.ModCount - 1,
                                    overrideDetailWith = m.LocalizedModName,
                                    OnChange = new Action<int, MenuItemHorSelector<int>>((selectedAlternative, menuItem) => { m.Index = selectedAlternative; })
                                });
                                if (m.ModType == VehicleModType.FrontWheel)
                                {
                                    _menuItems.Add(new MenuItemCheckbox
                                    {
                                        replacedle = $"Special Tire Variation",
                                        Description = "This will only work for some wheels.",
                                        state = m.Variation,
                                        OnActivate = new Action<bool, MenuItemCheckbox>((selectedAlternative, menuItem) => { m.Variation = selectedAlternative; })
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.Error($"[VEHICLETESTMENU] Exception in vehicle mods code; {ex.Message}");
                            }
                        });

                        // Yes, there are this many extra indices
                        // TODO: Save these for each vehicle after iterating once; this is the first iteration
                        // No performance hit on my own PC though
                        Enumerable.Range(0, 50).ToList().ForEach(i =>
                        {
                            try
                            { 
                                if (Function.Call<bool>(Hash.DOES_EXTRA_EXIST, vehicle.Handle, i))
                                {
                                    _menuItems.Add(new MenuItemCheckbox
                                    {
                                        replacedle = $"Extra #{i + 1}",
                                        state = Function.Call<bool>(Hash.IS_VEHICLE_EXTRA_TURNED_ON, vehicle.Handle, i),
                                        OnActivate = new Action<bool, MenuItemCheckbox>((selectedAlternative, menuItem) => { Function.Call(Hash.SET_VEHICLE_EXTRA, vehicle.Handle, i, selectedAlternative ? 0 : -1); })
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.Error($"[VEHICLETESTMENU] Exception in extras code; {ex.Message}");
                            }
                        });

                        visibleItems = _menuItems.Slice(visibleItems.IndexOf(menuItems.First()), visibleItems.IndexOf(menuItems.Last()));
                        menuItems = _menuItems;
                        SelectedIndex = SelectedIndex; // refreshes state
                    }
                    catch(Exception ex)
                    {
                        Log.Error($"[VEHICLETESTMENU] Outer exception {ex.Message}");
                    }
                }
                else
                {
                    if (!currentlySelectedVehicleOnFoot.IsBetween(0, VehicleHashValues.Count-1)) currentlySelectedVehicleOnFoot = 0;
                    _menuItems.Add(new MenuItemHorNamedSelector
                    {
                        replacedle = $"Spawn Vehicle",
                        Description = "Activate to spawn vehicle.",
                        state = currentlySelectedVehicleOnFoot,
                        Type = MenuItemHorizontalSelectorType.NumberAndBar,
                        wrapAround = true,
                        optionList = VehicleHashNames,
                        OnChange = new Action<int, string, MenuItemHorNamedSelector>((selectedAlternative, selName, menuItem) => { currentlySelectedVehicleOnFoot = selectedAlternative; }),
                        OnActivate = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await ReplaceCurrentVehicleByIndex(selectedAlternative); })
                    });
                    menuItems = _menuItems;
                    SelectedIndex = 0; // refreshes state
                }
            }

19 Source : PoliceVehicleMenu.cs
with MIT License
from GroovyGiantPanda

public override void Refresh()
            {
                _menuItems.Clear();
                if (serviceVehicle != null)
                {
                    try
                    {
                        //Log.Debug($"X {VehicleHashNames.Count()}");
                        VehicleColor primaryColor = serviceVehicle.Mods.PrimaryColor;
                        VehicleColor secondaryColor = serviceVehicle.Mods.SecondaryColor;
                        VehicleColor pearlescentColor = serviceVehicle.Mods.PearlescentColor;
                        VehicleColor RimColor = serviceVehicle.Mods.RimColor;
                        VehicleWheelType WheelType = (VehicleWheelType)Function.Call<int>(Hash.GET_VEHICLE_WHEEL_TYPE, serviceVehicle.Handle);
                        int LiveryCount = serviceVehicle.Mods.LiveryCount;
                        int Livery = serviceVehicle.Mods.Livery;

                        // R/G/B selection?
                        //System.Drawing.Color NeonLightsColor = vehicle.Mods.NeonLightsColor;

                        // Do we even want this one?
                        //LicensePlateStyle LicensePlateStyle = vehicle.Mods.LicensePlateStyle;

                        // I have gotten several requests not to implement tire smoke (realism level -150)
                        //Log.Debug($"{selectedVehicleIndex}");
                        VehicleMod[] AllMods = serviceVehicle.Mods.GetAllMods();
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = "Vehicle",
                            Description = "Activate to replace your current vehicle.",
                            state = selectedVehicleIndex,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleHashNames,
                            OnChange = (selectedAlternative, selName, item) => { selectedVehicleIndex = (item as MenuItemHorNamedSelector).state; },
                            OnActivate = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await ReplaceCurrentVehicleByIndex(selectedAlternative); })
                        });
                        if (LiveryCount != -1)
                        {
                            if (Livery == -1) serviceVehicle.Mods.Livery = 1;
                            _menuItems.Add(new MenuItemHorSelector<int>
                            {
                                replacedle = $@"Livery",
                                state = selectedLivery,
                                Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                wrapAround = true,
                                minState = 1,
                                maxState = LiveryCount,
                                overrideDetailWith = serviceVehicle.Mods.LocalizedLiveryName != "" ? $"{serviceVehicle.Mods.LocalizedLiveryName}" : "",
                                OnChange = new Action<int, MenuItemHorSelector<int>>((selectedAlternative, menuItem) => { serviceVehicle.Mods.Livery = selectedAlternative; selectedLivery = selectedAlternative; })
                            });
                        }
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Primary Color",
                            state = VehicleColorValues.Contains(primaryColor) ? VehicleColorValues.IndexOf(primaryColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 0); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Secondary Color",
                            state = VehicleColorValues.Contains(secondaryColor) ? VehicleColorValues.IndexOf(secondaryColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 1); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Pearlescent Color",
                            state = VehicleColorValues.Contains(pearlescentColor) ? VehicleColorValues.IndexOf(pearlescentColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 2); })
                        });
                        _menuItems.Add(new MenuItemHorNamedSelector
                        {
                            replacedle = $"Rim Color",
                            state = VehicleColorValues.Contains(RimColor) ? VehicleColorValues.IndexOf(RimColor) : 0,
                            Type = MenuItemHorizontalSelectorType.NumberAndBar,
                            wrapAround = true,
                            optionList = VehicleColorNames,
                            OnChange = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await SetColorByIndex(selectedAlternative, 3); })
                        });
                        var allowedWheelTypes = serviceVehicle.Mods.AllowedWheelTypes.ToList();
                        if (allowedWheelTypes.Contains(VehicleWheelType.HighEnd)) allowedWheelTypes.Remove(VehicleWheelType.HighEnd); // Removing for now, seems to not want to set this
                        // Wheel Types not a thing for bikes I believe; real and front wheel already a mod category
                        if (serviceVehicle.Model.IsCar && allowedWheelTypes.Count() > 0)
                        {
                            _menuItems.Add(new MenuItemHorNamedSelector
                            {
                                replacedle = $"Wheel Type",
                                state = allowedWheelTypes.ToList().Contains(WheelType) ? (int)WheelType : (int)allowedWheelTypes[0],
                                Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                wrapAround = true,
                                optionList = allowedWheelTypes.Select(i => $"{i}").ToList(),
                                OnChange = new Action<int, string, MenuItemHorNamedSelector>((selectedAlternative, selName, menuItem) => { serviceVehicle.Mods.WheelType = (VehicleWheelType)selectedAlternative; serviceVehicle.Mods[VehicleModType.FrontWheel].Index = 0; })
                            });
                        }
                        AllMods.Where(m => m.ModType != VehicleModType.Engine && m.ModType != VehicleModType.Transmission && m.ModType != VehicleModType.Brakes).ToList().ForEach(m =>
                        {
                            try
                            {
                                _menuItems.Add(new MenuItemHorSelector<int>
                                {
                                    replacedle = $@"{m.LocalizedModTypeName}",
                                    state = (m.Index >= -1 && m.Index <= m.ModCount - 1) ? m.Index : 0,
                                    Type = MenuItemHorizontalSelectorType.NumberAndBar,
                                    wrapAround = true,
                                    minState = -1,
                                    maxState = m.ModCount - 1,
                                    overrideDetailWith = m.LocalizedModName,
                                    OnChange = new Action<int, MenuItemHorSelector<int>>((selectedAlternative, menuItem) => { m.Index = selectedAlternative; })
                                });
                                if (m.ModType == VehicleModType.FrontWheel)
                                {
                                    _menuItems.Add(new MenuItemCheckbox
                                    {
                                        replacedle = $"Special Tire Variation",
                                        Description = "This will only work for some wheels.",
                                        state = m.Variation,
                                        OnActivate = new Action<bool, MenuItemCheckbox>((selectedAlternative, menuItem) => { m.Variation = selectedAlternative; })
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.Error($"[COPVEHICLEMENU] Exception in vehicle mods code; {ex.Message}");
                            }
                        });

                        // Yes, there are this many extra indices
                        // TODO: Save these for each vehicle after iterating once; this is the first iteration
                        // No performance hit on my own PC though
                        Enumerable.Range(0, 50).ToList().ForEach(i =>
                        {
                            try
                            {
                                if (Function.Call<bool>(Hash.DOES_EXTRA_EXIST, serviceVehicle.Handle, i))
                                {
                                    _menuItems.Add(new MenuItemCheckbox
                                    {
                                        replacedle = $"Extra #{i + 1}",
                                        state = Function.Call<bool>(Hash.IS_VEHICLE_EXTRA_TURNED_ON, serviceVehicle.Handle, i),
                                        OnActivate = new Action<bool, MenuItemCheckbox>((selectedAlternative, menuItem) => { Function.Call(Hash.SET_VEHICLE_EXTRA, serviceVehicle.Handle, i, selectedAlternative ? 0 : -1); })
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.Error($"[COPVEHICLEMENU] Exception in extras code; {ex.Message}");
                            }
                        });
                        int firstVisibleItem = visibleItems.IndexOf(menuItems.First());
                        int lastVisibleItem = visibleItems.IndexOf(menuItems.Last());
                        visibleItems = _menuItems.Slice(firstVisibleItem, lastVisibleItem);
                        //if (lastVisibleItem - firstVisibleItem >= _menuItems.Count)
                        //    visibleItems = _menuItems;
                        //else
                        //{
                        //    visibleItems = _menuItems.Slice(firstVisibleItem, firstVisibleItem + Math.Min(Math.Max(lastVisibleItem - firstVisibleItem, _menuItems.Count - 1 - firstVisibleItem), numVisibleItems));
                        //}

                        menuItems = _menuItems;
                        SelectedIndex = SelectedIndex; // refreshes state
                    }
                    catch (Exception ex)
                    {
                        Log.Error($"[COPVEHICLEMENU] Outer exception {ex.Message}");
                    }
                }
                else
                {
                    if (!currentlySelectedVehicleOnFoot.IsBetween(0, VehicleHashValues.Count-1)) currentlySelectedVehicleOnFoot = 0;
                    _menuItems.Add(new MenuItemHorNamedSelector
                    {
                        replacedle = $"Spawn Vehicle",
                        Description = "Activate to spawn vehicle.",
                        state = currentlySelectedVehicleOnFoot,
                        Type = MenuItemHorizontalSelectorType.NumberAndBar,
                        wrapAround = true,
                        optionList = VehicleHashNames,
                        OnChange = new Action<int, string, MenuItemHorNamedSelector>((selectedAlternative, selName, menuItem) => { selectedVehicleIndex = currentlySelectedVehicleOnFoot = selectedAlternative; }),
                        OnActivate = new Action<int, string, MenuItemHorNamedSelector>(async (selectedAlternative, selName, menuItem) => { await ReplaceCurrentVehicleByIndex(selectedAlternative); })
                    });
                    menuItems = _menuItems;
                    SelectedIndex = SelectedIndex; // refreshes state
                }
            }