Example #1
0
        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;
                }
            }
        }
Example #2
0
        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);
        }