Example #1
0
        private static string GetModName(Vehicle vehicle, VehicleModType modtype, int index)
        {
            switch (modtype)
            {
            case VehicleModType.Armor:
                return("CMOD_ARM_" + (index + 1));

            case VehicleModType.Brakes:
                return("CMOD_BRA_" + (index + 1));

            case VehicleModType.Engine:
                if (index == -1)
                {
                    return("CMOD_ARM_0");
                }
                return("CMOD_ENG_" + (index + 2));

            case VehicleModType.Suspension:
                return("CMOD_SUS_" + (index + 1));

            case VehicleModType.Transmission:
                return("CMOD_GBX_" + (index + 1));

            case VehicleModType.Horns:
                if (VehicleHorns.HornNames.ContainsKey(index))
                {
                    return(VehicleHorns.HornNames[index].Item1);
                }
                return("");

            default: return(Function.Call <string>(Hash.GET_MOD_TEXT_LABEL, vehicle, (int)modtype, index));
            }
        }
Example #2
0
        public VehicleMod this[VehicleModType modType]
        {
            get
            {
                if (!_vehicleMods.TryGetValue(modType, out VehicleMod vehicleMod))
                {
                    vehicleMod = new VehicleMod(_owner, modType);
                    _vehicleMods.Add(modType, vehicleMod);
                }

                return(vehicleMod);
            }
        }
Example #3
0
 public VehicleMod this[VehicleModType modType]
 {
     get
     {
         VehicleMod mod = null;
         if (!this._vehicleMods.TryGetValue(modType, out mod))
         {
             mod = new VehicleMod(this._owner, modType);
             this._vehicleMods.Add(modType, mod);
         }
         return(mod);
     }
 }
Example #4
0
 private static void ApplyFlags(ModData mod, VehicleModType modtype, int count, int index)
 {
     //if(index == -1) mod.flags.Add("stock");
     switch (modtype)
     {
     case VehicleModType.FrontWheel:
     case VehicleModType.RearWheel:
         if (index >= count / 2)
         {
             mod.flags.Add("chrome");
         }
         break;
     }
 }
Example #5
0
        private static void CreateModTypeMenu(Menu modMenu, VehicleModType modType, Vehicle veh)
        {
            for (int i = 0; i <= veh.Mods[modType].ModCount - 1; i++)
            {
                MenuItem modTypeMenuItem = null;
                if (veh.Mods[modType].Index == i)
                {
                    modTypeMenuItem = new MenuItem(i.ToString(), i.ToString())
                    {
                        RightIcon = MenuItem.Icon.TICK
                    };
                }
                else
                {
                    modTypeMenuItem = new MenuItem(i.ToString(), i.ToString())
                    {
                    };
                }

                modTypeMenuItem.ItemData = i;
                modMenu.AddMenuItem(modTypeMenuItem);
            }

            modMenu.OnMenuClose += (_menu) =>
            {
                foreach (MenuItem item in modMenu.GetMenuItems())
                {
                    if (item.RightIcon.Equals(MenuItem.Icon.TICK))
                    {
                        veh.Mods[modType].Index = item.ItemData;
                    }
                }
            };

            modMenu.OnIndexChange += (_menu, _oldItem, _newItem, _oldIndex, _newIndex) =>
            {
                veh.Mods[modType].Index = _newItem.ItemData;
            };

            modMenu.OnItemSelect += (_menu, _item, _index) =>
            {
                foreach (MenuItem item in modMenu.GetMenuItems())
                {
                    item.RightIcon = MenuItem.Icon.NONE;
                }
                _item.RightIcon         = MenuItem.Icon.TICK;
                veh.Mods[modType].Index = _item.ItemData;
            };
        }
Example #6
0
 public static void ToggleMod(this Vehicle vehicle, VehicleModType mod, bool toggle)
 {
     NativeFunction.CallByName <uint>("TOGGLE_VEHICLE_MOD", vehicle, (int)mod, toggle);
 }
Example #7
0
 internal VehicleMod(Vehicle owner, VehicleModType modType)
 {
     _owner  = owner;
     ModType = modType;
 }
Example #8
0
 public void SetVehicleMod(Client sender, VehicleModType slot, int value)
 {
     API.shared.setVehicleMod(sender.vehicle, (int)slot, value);
 }
Example #9
0
 public bool HasVehicleMod(VehicleModType type)
 {
     return(API.GetNumVehicleMods(_owner.Handle, (int)type) > 0);
 }
Example #10
0
 /// <summary>
 /// Sets a vehicles mod into a category
 /// </summary>
 /// <param name="vehicle">The vehicle</param>
 /// <param name="category">The mod category</param>
 /// <param name="id">The mod id</param>
 /// <returns></returns>
 public static bool SetMod(this IVehicle vehicle, VehicleModType category, byte id) =>
 vehicle.SetMod((byte)category, id);
Example #11
0
 /// <summary>
 /// Returns the amount of mods available in a category
 /// </summary>
 /// <param name="vehicle">The vehicle</param>
 /// <param name="category">The mod type</param>
 /// <returns></returns>
 public static byte GetModsCount(this IVehicle vehicle, VehicleModType category) =>
 vehicle.GetModsCount((byte)category);
Example #12
0
 internal VehicleMod(Vehicle owner, VehicleModType modType)
 {
     this._owner  = owner;
     this.ModType = modType;
 }
Example #13
0
 internal VehicleMod(Vehicle owner, VehicleModType modType)
 {
     Vehicle = owner;
     Type    = modType;
 }
        public string GetLocalizedModName(int index)
        {
            if (this.ModCount == 0)
            {
                return("");
            }
            if ((index < -1) || (index >= this.ModCount))
            {
                return("");
            }
            InputArgument[] arguments = new InputArgument[] { "mod_mnu", 10 };
            if (!Function.Call <bool>(Hash.HAS_THIS_ADDITIONAL_TEXT_LOADED, arguments))
            {
                InputArgument[] argumentArray2 = new InputArgument[] { 10, true };
                Function.Call(Hash.CLEAR_ADDITIONAL_TEXT, argumentArray2);
                InputArgument[] argumentArray3 = new InputArgument[] { "mod_mnu", 10 };
                Function.Call(Hash.REQUEST_ADDITIONAL_TEXT, argumentArray3);
            }
            if (this.ModType == VehicleModType.Horns)
            {
                return(!_hornNames.ContainsKey(index) ? "" : (!Game.DoesGXTEntryExist(_hornNames[index].Item1) ? _hornNames[index].Item2 : Game.GetGXTEntry(_hornNames[index].Item1)));
            }
            if ((this.ModType == VehicleModType.FrontWheel) || (this.ModType == VehicleModType.RearWheel))
            {
                if (index == -1)
                {
                    return((this._owner.Model.IsBike || !this._owner.Model.IsBicycle) ? Game.GetGXTEntry("CMOD_WHE_B_0") : Game.GetGXTEntry("CMOD_WHE_0"));
                }
                if (index >= (this.ModCount / 2))
                {
                    InputArgument[] argumentArray4 = new InputArgument[] { this._owner.Handle, this.ModType, index };
                    return(Game.GetGXTEntry("CHROME") + " " + Game.GetGXTEntry(Function.Call <string>(Hash.GET_MOD_TEXT_LABEL, argumentArray4)));
                }
                InputArgument[] argumentArray5 = new InputArgument[] { this._owner.Handle, this.ModType, index };
                return(Game.GetGXTEntry(Function.Call <string>(Hash.GET_MOD_TEXT_LABEL, argumentArray5)));
            }
            switch (this.ModType)
            {
            case VehicleModType.Engine:
                return((index != -1) ? Game.GetGXTEntry("CMOD_ENG_" + (index + 2).ToString()) : Game.GetGXTEntry("CMOD_ARM_0"));

            case VehicleModType.Brakes:
                return(Game.GetGXTEntry("CMOD_BRA_" + (index + 1).ToString()));

            case VehicleModType.Transmission:
                return(Game.GetGXTEntry("CMOD_GBX_" + (index + 1).ToString()));

            case VehicleModType.Suspension:
                return(Game.GetGXTEntry("CMOD_SUS_" + (index + 1).ToString()));

            case VehicleModType.Armor:
                return(Game.GetGXTEntry("CMOD_ARM_" + (index + 1).ToString()));
            }
            if (index > -1)
            {
                InputArgument[] argumentArray6 = new InputArgument[] { this._owner.Handle, this.ModType, index };
                string          entry          = Function.Call <string>(Hash.GET_MOD_TEXT_LABEL, argumentArray6);
                if (!Game.DoesGXTEntryExist(entry))
                {
                    return(this.LocalizedModTypeName + " " + (index + 1).ToString());
                }
                entry = Game.GetGXTEntry(entry);
                return(((entry == "") || (entry == "NULL")) ? (this.LocalizedModTypeName + " " + (index + 1).ToString()) : entry);
            }
            VehicleModType modType = this.ModType;

            if (modType == VehicleModType.AirFilter)
            {
                if (this._owner.Model == 0x1bb290bc)
                {
                }
            }
            else if (modType == VehicleModType.Struts)
            {
                VehicleHash model = (VehicleHash)this._owner.Model;
                if ((model == VehicleHash.Banshee2) || ((model == ((VehicleHash)(-1041692462))) || (model == ((VehicleHash)(-295689028)))))
                {
                    return(Game.GetGXTEntry("CMOD_COL5_41"));
                }
            }
            return(Game.GetGXTEntry("CMOD_DEF_0"));
        }
Example #15
0
 public bool HasVehicleMod(VehicleModType type)
 {
     InputArgument[] arguments = new InputArgument[] { this._owner.Handle, type };
     return(Function.Call <int>(Hash.GET_NUM_VEHICLE_MODS, arguments) > 0);
 }
Example #16
0
 public bool HasVehicleMod(VehicleModType type)
 {
     return(Function.Call <int>(Hash.GET_NUM_VEHICLE_MODS, _owner.Handle, type) > 0);
 }
Example #17
0
 public static void ToggleMod(this Vehicle vehicle, VehicleModType mod, bool toggle)
 {
     NativeFunction.Natives.TOGGLE_VEHICLE_MOD(vehicle, (int)mod, toggle);
 }