feat: run-traktorer får ingredienser og Wait-pulje fra deres run

This commit is contained in:
2026-09-22 22:39:31 +02:00
parent 264a07c697
commit aa040d95ef
4 changed files with 88 additions and 9 deletions
+20 -3
View File
@@ -489,10 +489,23 @@ local function applySupplyChoice(driver, ingredients, choice)
supplyState[driver] = {ingredients = ingredients, narrowedTo = choice.fillType}
end
-- Samlet valg: behovsstyret når flere varer er valgt, ellers mappe-logik. nil = AutoDrives original.
-- Ingredienslisten for køretøjet: run'ets liste når det er i et run (ingen tændknap
-- nødvendig), ellers AD's multi-valg (>1 vare). nil = ingen behovsstyring.
function ADSmartPickup.getIngredientsFor(adEnv, driver)
local run = ADRunsController ~= nil and ADRunsController.getRunForVehicle(driver) or nil
if run ~= nil then
local ingredients = ADRunsController.getRunIngredients(adEnv, run, driver)
if #ingredients > 0 then
return ingredients
end
return nil
end
return ADSupplyPlanner.resolveIngredients(supplyState[driver], driver.ad.stateModule:getSelectedFillTypes())
end
-- Samlet valg: behovsstyret med ingrediensliste, ellers mappe-logik. nil = AutoDrives original.
function ADSmartPickup.choosePickup(adEnv, driver)
local selected = driver.ad.stateModule:getSelectedFillTypes()
local ingredients = ADSupplyPlanner.resolveIngredients(supplyState[driver], selected)
local ingredients = ADSmartPickup.getIngredientsFor(adEnv, driver)
if ingredients == nil then
supplyState[driver] = nil
return ADSmartPickup.findLeastFilledPickup(adEnv, driver)
@@ -664,6 +677,10 @@ function ADSmartPickup:update(dt)
if adEnv ~= nil and g_currentMission ~= nil and g_currentMission.storageSystem ~= nil then
installHook(adEnv)
isHooked = true
if ADRunsController ~= nil then
pcall(ADRunsController.load, adEnv)
pcall(ADRunsController.installSaveHook)
end
end
return
end