diff --git a/lua/ge/extensions/career/vehicleRetrieval.lua b/lua/ge/extensions/career/vehicleRetrieval.lua index bf88ce0..c28d7a9 100644 --- a/lua/ge/extensions/career/vehicleRetrieval.lua +++ b/lua/ge/extensions/career/vehicleRetrieval.lua @@ -30,18 +30,24 @@ local function spawnVehicle(inventoryId, callback) end local function Retrieve(inventoryId) - extensions.core_jobsystem.create( - function(job) - spawnVehicle(inventoryId, function() - local veh = be:getObjectByID(career_modules_inventory.getVehicleIdFromInventoryId(inventoryId)) - local location = { pos = veh:getPosition(), rot = quat(0, 0, 1, 0) * quat(veh:getRefNodeRotation()) } - local garage = career_modules_inventory.getClosestGarage(location.pos) - job.sleep(1) - career_vehicleSaveSystem.LoadVehicle(inventoryId) - freeroam_facilities.teleportToGarage(garage.id, veh, false) - end) - end - ) + career_vehicleSaveSystem.QueueVehicleToSave(inventoryId) + if not career_vehicleSaveSystem.SaveVehicle(inventoryId) then + career_vehicleSaveSystem.QueuedVehicleSaved(inventoryId) + end + career_vehicleSaveSystem.CheckSavedAsync(function() + extensions.core_jobsystem.create( + function(job) + spawnVehicle(inventoryId, function() + local veh = be:getObjectByID(career_modules_inventory.getVehicleIdFromInventoryId(inventoryId)) + local location = { pos = veh:getPosition(), rot = quat(0, 0, 1, 0) * quat(veh:getRefNodeRotation()) } + local garage = career_modules_inventory.getClosestGarage(location.pos) + job.sleep(1) + career_vehicleSaveSystem.LoadVehicle(inventoryId) + freeroam_facilities.teleportToGarage(garage.id, veh, false) + end) + end + ) + end) end local function onComputerAddFunctions(menuData, computerFunctions) diff --git a/lua/ge/extensions/career/vehicleSaveSystem.lua b/lua/ge/extensions/career/vehicleSaveSystem.lua index 89c1fcb..335e9a1 100644 --- a/lua/ge/extensions/career/vehicleSaveSystem.lua +++ b/lua/ge/extensions/career/vehicleSaveSystem.lua @@ -15,7 +15,7 @@ local M = {} -M.dependencies = { 'career_career', 'career_saveSystem', 'career_modules_inventory' } +M.dependencies = { 'career_career', 'career_saveSystem', 'career_modules_inventory', 'career_modules_insurance' } local extensionName = "career_vehicleSaveSystem" local vehicleSaves_temp = "/temp/career/vehicle_saves" @@ -116,6 +116,9 @@ local function SaveVehicle(inventoryId) end local function LoadVehicle(inventoryId) + if not career_modules_insurance.inventoryVehNeedsRepair(inventoryId) then + return + end local saveFile = GetVehicleSaveFile(vehicleSaves_temp, inventoryId) local vehicleId = career_modules_inventory.getVehicleIdFromInventoryId(inventoryId)