feat: bedste foder først — lavere foder kun når truget er nødlidende (≥75 % fri); forsynings-traktorer uden noget at hente holder ved Wait (v1.14.0.0)

This commit is contained in:
2026-09-24 00:56:01 +02:00
parent 75fd123213
commit 1b7b74ad2c
6 changed files with 112 additions and 5 deletions
+21
View File
@@ -421,6 +421,16 @@ local function startHold(adEnv, vehicle, run, reasons, sourcesById)
return choiceFor(marker, source, nil)
end
-- Forsynings-traktor uden noget at hente: hold ved et Wait-punkt i run'ets pulje; replan() returnerer
-- waypoint-id for næste kilde (eller nil) og kaldes hvert CHECK_INTERVAL_MS.
function ADOutbound.holdSupplyVehicle(adEnv, vehicle, run, reasons, replan)
local choice = startHold(adEnv, vehicle, run, reasons, {})
if choice ~= nil and holds[vehicle] ~= nil then
holds[vehicle].replan = replan
end
return choice
end
-- Hook 1: AutoDrive spørger om næste pålæsning. Tur -> kilden; ingen tur -> Wait-punkt.
function ADOutbound.choosePickup(adEnv, vehicle)
local run = getRun(vehicle)
@@ -494,6 +504,17 @@ local function updateHold(adEnv, task, hold, dt)
return true
end
hold.timerMs = 0
-- forsynings-traktor: egen genplanlægning (ADSmartPickup) giver en kilde-markør at køre til
if hold.replan ~= nil then
local ok, targetId = pcall(hold.replan)
if ok and targetId ~= nil then
releaseHold(vehicle)
ADWaitPool.redirect(task, targetId)
task.activatedUALLoading = false
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' kører fra Wait: der er noget at hente igen", tostring(vehicle:getName()))
end
return true
end
ADOutbound.choosePickup(adEnv, vehicle)
local state = trips[vehicle]
if state ~= nil then