fix: læs-bytte — Wait-logik kun ved AD's aflæsningsmål; frisk rest ved bytte

This commit is contained in:
2026-09-22 23:20:49 +02:00
parent 5da3e81f3e
commit 5414371f72
3 changed files with 23 additions and 0 deletions
+3
View File
@@ -42,6 +42,9 @@ end
-- Nærmeste silo med plads til resten og vejnet til/fra; siloer der allerede har varen foretrækkes.
function ADLoadSwap.findDumpMarker(adEnv, vehicle, fillType, rest, homeWayPointId, isReachable)
if vehicle.rootNode == nil then
return nil
end
local farmId = ADSmartPickup.getFarmId(vehicle)
local homeStation = ADSmartPickup.getUnloadStationAtWayPointId(adEnv, homeWayPointId, farmId)
local x, _, z = getWorldTranslation(vehicle.rootNode)
+8
View File
@@ -107,6 +107,12 @@ local function startWaiting(adEnv, task)
if not vehicle.ad.drivePathModule:isTargetReached() or vehicle.ad.trailerModule:isActiveAtTrigger() then
return
end
-- Efter et bytte er opgavens mål en silo, ikke AD's rigtige aflæsningsmål (anden markør);
-- der skal AD bare læsse af som normalt, uden Wait-logik.
local target = vehicle.ad.stateModule.getSecondMarker ~= nil and vehicle.ad.stateModule:getSecondMarker() or nil
if target == nil or task.destinationID ~= target.id then
return
end
local fillType, rest = getRestLoad(adEnv, vehicle)
if fillType == nil or rest < ADUnloadWait.MIN_REST_LITERS then
return
@@ -150,6 +156,8 @@ local function updateWaiting(adEnv, task, wait, dt)
release(vehicle)
return
end
-- Friske tal til evt. bytte og til tilbage-loggen — ikke dem fra da ventningen startede.
wait.fillType, wait.rest = fillType, rest
local free, capacity = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType)
if free == nil or not ADSupplyPlanner.canUnloadRest(free, rest, capacity) then
if ADLoadSwap ~= nil then