Fix Saving for Multiple Spawned Vehicles
This commit is contained in:
parent
17d90c2699
commit
d245d00706
@ -30,9 +30,9 @@ local function spawnVehicle(inventoryId, callback)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function Retrieve(inventoryId)
|
local function Retrieve(inventoryId)
|
||||||
career_vehicleSaveSystem.QueueVehicleToSave(inventoryId)
|
career_vehicleSaveSystem.EnqueueVehicleToSave(inventoryId)
|
||||||
if not career_vehicleSaveSystem.SaveVehicle(inventoryId) then
|
if not career_vehicleSaveSystem.SaveVehicle(inventoryId) then
|
||||||
career_vehicleSaveSystem.QueuedVehicleSaved(inventoryId)
|
career_vehicleSaveSystem.DequeueVehicleToSave(inventoryId)
|
||||||
end
|
end
|
||||||
|
|
||||||
local vehicleValue = career_modules_valueCalculator.getInventoryVehicleValue(inventoryId, true)
|
local vehicleValue = career_modules_valueCalculator.getInventoryVehicleValue(inventoryId, true)
|
||||||
@ -87,7 +87,7 @@ end
|
|||||||
|
|
||||||
local function RemoveVehicleObject(inventoryId)
|
local function RemoveVehicleObject(inventoryId)
|
||||||
table.insert(vehicleObjectsToRemove, inventoryId)
|
table.insert(vehicleObjectsToRemove, inventoryId)
|
||||||
career_vehicleSaveSystem.QueueVehicleToSave(inventoryId)
|
career_vehicleSaveSystem.EnqueueVehicleToSave(inventoryId)
|
||||||
career_vehicleSaveSystem.SaveVehicle(inventoryId)
|
career_vehicleSaveSystem.SaveVehicle(inventoryId)
|
||||||
career_vehicleSaveSystem.CheckSavedAsync(function()
|
career_vehicleSaveSystem.CheckSavedAsync(function()
|
||||||
career_modules_inventory_removeVehicleObject(inventoryId)
|
career_modules_inventory_removeVehicleObject(inventoryId)
|
||||||
|
@ -65,13 +65,14 @@ local function GetVehicleSaveFile(root, inventoryId)
|
|||||||
return path .. "/save.json"
|
return path .. "/save.json"
|
||||||
end
|
end
|
||||||
|
|
||||||
local function QueueVehicleToSave(inventoryId)
|
local function EnqueueVehicleToSave(inventoryId)
|
||||||
|
log("I", "saving", "enqueued vehicle " .. inventoryId)
|
||||||
M.queuedVehicleSaves[inventoryId] = true
|
M.queuedVehicleSaves[inventoryId] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
local function QueuedVehicleSaved(inventoryId)
|
local function DequeueVehicleToSave(inventoryId)
|
||||||
log("I", "saving", "saved vehicle " .. inventoryId)
|
log("I", "saving", "dequeued vehicle " .. inventoryId)
|
||||||
table.remove(M.queuedVehicleSaves, inventoryId)
|
M.queuedVehicleSaves[inventoryId] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local function VehiclesSaved()
|
local function VehiclesSaved()
|
||||||
@ -108,9 +109,10 @@ local function SaveVehicle(inventoryId)
|
|||||||
local object = be:getObjectByID(vehicleId)
|
local object = be:getObjectByID(vehicleId)
|
||||||
object:queueLuaCommand("beamstate.save(\"" ..
|
object:queueLuaCommand("beamstate.save(\"" ..
|
||||||
saveFile ..
|
saveFile ..
|
||||||
"\"); obj:queueGameEngineLua('career_vehicleSaveSystem.QueuedVehicleSaved(\"" .. inventoryId .. "\")');")
|
"\"); obj:queueGameEngineLua('career_vehicleSaveSystem.DequeueVehicleToSave(" .. inventoryId .. ")');")
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
|
log('I', 'saving', 'vehicle ' .. inventoryId .. " not spawned")
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -137,12 +139,12 @@ local function onSaveCurrentSaveSlot(currentSavePath, oldSaveDate, vehiclesThumb
|
|||||||
local vehicles = career_modules_inventory.getVehicles()
|
local vehicles = career_modules_inventory.getVehicles()
|
||||||
|
|
||||||
for id, _ in pairs(vehicles) do
|
for id, _ in pairs(vehicles) do
|
||||||
QueueVehicleToSave(id)
|
EnqueueVehicleToSave(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
for id, _ in pairs(M.queuedVehicleSaves) do
|
for id, _ in pairs(M.queuedVehicleSaves) do
|
||||||
if not SaveVehicle(id) then
|
if not SaveVehicle(id) then
|
||||||
QueuedVehicleSaved(id)
|
DequeueVehicleToSave(id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
CheckSavedAsync(function()
|
CheckSavedAsync(function()
|
||||||
@ -168,8 +170,8 @@ M.LoadVehicle = LoadVehicle
|
|||||||
|
|
||||||
M.CheckSavedAsync = CheckSavedAsync
|
M.CheckSavedAsync = CheckSavedAsync
|
||||||
|
|
||||||
M.QueueVehicleToSave = QueueVehicleToSave
|
M.EnqueueVehicleToSave = EnqueueVehicleToSave
|
||||||
M.QueuedVehicleSaved = QueuedVehicleSaved
|
M.DequeueVehicleToSave = DequeueVehicleToSave
|
||||||
|
|
||||||
M.onSaveCurrentSaveSlotAsyncStart = onSaveCurrentSaveSlotAsyncStart
|
M.onSaveCurrentSaveSlotAsyncStart = onSaveCurrentSaveSlotAsyncStart
|
||||||
M.onSaveCurrentSaveSlot = onSaveCurrentSaveSlot
|
M.onSaveCurrentSaveSlot = onSaveCurrentSaveSlot
|
||||||
|
Loading…
Reference in New Issue
Block a user