feat: flere mål pr. run (afkrydsning; den stald der mangler mest får turen, AD's mål skiftes ved turstart) + under-faner Overblik/Runs (v1.11.0.0)

This commit is contained in:
2026-09-23 01:56:47 +02:00
parent 69a98984bb
commit bcd7de8344
12 changed files with 376 additions and 113 deletions
+19
View File
@@ -611,8 +611,27 @@ function ADSmartPickup.getIngredientsFor(adEnv, driver)
return ADSupplyPlanner.resolveIngredients(supplyState[driver], driver.ad.stateModule:getSelectedFillTypes())
end
-- Run med flere mål: ved turens start sættes AD's aflæsningsmål til den stald der mangler
-- mest. AD læser først målet når vognen er læsset, så skiftet her gælder for hele turen.
local function chooseRunTarget(adEnv, driver)
local run = ADRunsController ~= nil and ADRunsController.getRunForVehicle(driver) or nil
if run == nil or ADRunsController.chooseTarget == nil or #ADRunsController.getRunTargets(run) < 2 then
return
end
local stateModule = driver.ad.stateModule
local targetId = ADRunsController.chooseTarget(adEnv, run, driver)
local current = stateModule.getSecondMarker ~= nil and stateModule:getSecondMarker() or nil
if targetId == nil or stateModule.setSecondMarkerByWayPointId == nil or (current ~= nil and current.id == targetId) then
return
end
stateModule:setSecondMarkerByWayPointId(targetId)
local marker = adEnv.ADGraphManager.getMapMarkerByWayPointId ~= nil and adEnv.ADGraphManager:getMapMarkerByWayPointId(targetId) or nil
Logging.info(ADSmartPickup.LOG_PREFIX .. "'%s' kører til %s (mangler mest af run'ets mål)", tostring(driver:getName()), marker ~= nil and tostring(marker.name) or tostring(targetId))
end
-- Samlet valg: behovsstyret med ingrediensliste, ellers mappe-logik. nil = AutoDrives original.
function ADSmartPickup.choosePickup(adEnv, driver)
chooseRunTarget(adEnv, driver)
local ingredients = ADSmartPickup.getIngredientsFor(adEnv, driver)
if ingredients == nil then
supplyState[driver] = nil