private void Save() { Client.Log("Save called."); Client.Log(string.Join(", ", this.Tracked)); foreach (var trackedVehicle in this.Tracked) { var vehicleHandle = NetToVeh(trackedVehicle.Item2); Vehicle citVeh = new Vehicle(vehicleHandle); var netId = NetworkGetNetworkIdFromEntity(citVeh.Handle); Debug.WriteLine($"Saving Vehicle: {trackedVehicle.Item2} - {citVeh.Position}"); Core.Models.Objects.Vehicles.Vehicle vehicle = citVeh; vehicle.TrackingUserId = Client.User.Id; vehicle.NetId = netId; vehicle.Hash = citVeh.Model.Hash; switch (trackedVehicle.Item1.VehicleType().Name) { case "Car": Car car = (Car)vehicle; // Add car specific props... BaseScript.TriggerServerEvent( $"igi:{trackedVehicle.Item1.VehicleType().Name}:save", JsonConvert.SerializeObject(car)); break; default: BaseScript.TriggerServerEvent( $"igi:{trackedVehicle.Item1.VehicleType().Name}:save", JsonConvert.SerializeObject(vehicle, trackedVehicle.Item1, new JsonSerializerSettings())); break; } } }
public static async Task <Vehicle> ToCitizenVehicle(this Core.Models.Objects.Vehicles.Vehicle vehicle) { Vehicle citizenVehicle = await World.CreateVehicle(new Model((VehicleHash)vehicle.Hash), vehicle.Position, vehicle.Heading); citizenVehicle.BodyHealth = vehicle.BodyHealth; citizenVehicle.EngineHealth = vehicle.EngineHealth; citizenVehicle.DirtLevel = vehicle.DirtLevel; citizenVehicle.FuelLevel = vehicle.FuelLevel; citizenVehicle.OilLevel = vehicle.OilLevel; citizenVehicle.PetrolTankHealth = vehicle.PetrolTankHealth; citizenVehicle.TowingCraneRaisedAmount = vehicle.TowingCraneRaisedAmount; //citizenVehicle.HasAlarm = vehicle.HasAlarm; citizenVehicle.IsAlarmSet = vehicle.IsAlarmed; //citizenVehicle.HasLock = vehicle.HasLock; citizenVehicle.IsDriveable = vehicle.IsDriveable; citizenVehicle.IsEngineRunning = vehicle.IsEngineRunning; //citizenVehicle.HasSeatbelts = vehicle.HasSeatbelts; citizenVehicle.AreHighBeamsOn = vehicle.IsHighBeamsOn; citizenVehicle.AreLightsOn = vehicle.IsLightsOn; citizenVehicle.IsInteriorLightOn = vehicle.IsInteriorLightOn; citizenVehicle.IsSearchLightOn = vehicle.IsSearchLightOn; citizenVehicle.IsTaxiLightOn = vehicle.IsTaxiLightOn; citizenVehicle.IsLeftIndicatorLightOn = vehicle.IsLeftIndicatorLightOn; citizenVehicle.IsRightIndicatorLightOn = vehicle.IsRightIndicatorLightOn; //citizenVehicle.IsFrontBumperBrokenOff = vehicle.IsFrontBumperBrokenOff; //citizenVehicle.IsRearBumperBrokenOff = vehicle.IsRearBumperBrokenOff; citizenVehicle.IsLeftHeadLightBroken = vehicle.IsLeftHeadLightBroken; citizenVehicle.IsRightHeadLightBroken = vehicle.IsRightHeadLightBroken; citizenVehicle.IsRadioEnabled = vehicle.IsRadioEnabled; citizenVehicle.RoofState = vehicle.IsRoofOpen ? VehicleRoofState.Opened : VehicleRoofState.Closed; citizenVehicle.NeedsToBeHotwired = vehicle.NeedsToBeHotwired; citizenVehicle.CanTiresBurst = vehicle.CanTiresBurst; if (vehicle.PrimaryColor.IsCustom) { citizenVehicle.Mods.CustomPrimaryColor = vehicle.PrimaryColor.CustomColor; } else { citizenVehicle.Mods.PrimaryColor = (VehicleColor)vehicle.PrimaryColor.StockColor; } if (vehicle.SecondaryColor.IsCustom) { citizenVehicle.Mods.CustomSecondaryColor = vehicle.SecondaryColor.CustomColor; } else { citizenVehicle.Mods.SecondaryColor = (VehicleColor)vehicle.SecondaryColor.StockColor; } citizenVehicle.Mods.PearlescentColor = (VehicleColor)vehicle.PearescentColor; citizenVehicle.Mods.RimColor = (VehicleColor)vehicle.RimColor; citizenVehicle.Mods.TrimColor = (VehicleColor)vehicle.TrimColor; citizenVehicle.Mods.DashboardColor = (VehicleColor)vehicle.DashboardColor; citizenVehicle.Mods.NeonLightsColor = vehicle.NeonColor; citizenVehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Back, vehicle.NeonPositions.HasFlag(VehicleNeonPositions.Back)); citizenVehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Front, vehicle.NeonPositions.HasFlag(VehicleNeonPositions.Front)); citizenVehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Left, vehicle.NeonPositions.HasFlag(VehicleNeonPositions.Left)); citizenVehicle.Mods.SetNeonLightsOn(VehicleNeonLight.Right, vehicle.NeonPositions.HasFlag(VehicleNeonPositions.Right)); citizenVehicle.Mods.WindowTint = (VehicleWindowTint)(int)vehicle.WindowTint; citizenVehicle.LockStatus = (VehicleLockStatus)(int)vehicle.LockStatus; //citizenVehicle.RadioStation = (RadioStation)(int)vehicle.RadioStation; //TODO: Set vehicle Extras/Seats/Doors/Windows/Wheels/etc return(citizenVehicle); }