fix: under Wait peger AD's mål på Wait-punktet (AD tippede ellers i småportioner og holdt vognen); behov/bytte måles mod hjem-målet; mål gendannes ved hjemkørsel (v1.11.13.0)

This commit is contained in:
2026-09-23 03:10:52 +02:00
parent 827010ca99
commit 33f69cc6c8
5 changed files with 32 additions and 14 deletions
+10 -6
View File
@@ -517,13 +517,16 @@ end
-- Fri plads + kapacitet for varen i køretøjets aflæsningsmål (Wait-punkt-logikken);
-- nil hvis målet ikke kendes eller ikke tager varen.
-- askAccepted=true: returnerer i stedet true/false for "tager målet varen?" (nil = mål ukendt).
function ADSmartPickup.getTargetFreeCapacity(adEnv, driver, fillType, askAccepted)
-- targetWayPointId (valgfri): brug dette mål i stedet for AD's 2. markør (mens en traktor venter
-- ved et Wait-punkt, peger AD's markør på Wait-punktet, så AD ikke tipper).
function ADSmartPickup.getTargetFreeCapacity(adEnv, driver, fillType, askAccepted, targetWayPointId)
local secondMarker = driver.ad.stateModule:getSecondMarker()
local farmId = getFarmId(driver)
if secondMarker == nil or farmId == nil then
local wayPointId = targetWayPointId or (secondMarker ~= nil and secondMarker.id or nil)
if wayPointId == nil or farmId == nil then
return nil
end
local targetWayPoint = adEnv.ADGraphManager:getWayPointById(secondMarker.id)
local targetWayPoint = adEnv.ADGraphManager:getWayPointById(wayPointId)
local target = targetWayPoint ~= nil and getUnloadStationAtMarker(adEnv, targetWayPoint, farmId) or nil
if target == nil then
return nil
@@ -539,13 +542,14 @@ function ADSmartPickup.getTargetFreeCapacity(adEnv, driver, fillType, askAccepte
end
-- Behovsstyret: den ingrediens aflæsningsmålet mangler mest, som også findes i en silo.
function ADSmartPickup.findSupplyPickup(adEnv, driver, ingredients)
function ADSmartPickup.findSupplyPickup(adEnv, driver, ingredients, targetWayPointId)
local secondMarker = driver.ad.stateModule:getSecondMarker()
local farmId = getFarmId(driver)
if secondMarker == nil or farmId == nil then
local wayPointId = targetWayPointId or (secondMarker ~= nil and secondMarker.id or nil)
if wayPointId == nil or farmId == nil then
return nil
end
local targetWayPoint = adEnv.ADGraphManager:getWayPointById(secondMarker.id)
local targetWayPoint = adEnv.ADGraphManager:getWayPointById(wayPointId)
local target = targetWayPoint ~= nil and getUnloadStationAtMarker(adEnv, targetWayPoint, farmId) or nil
if target == nil then
return nil