fix(runs): fyldte traktorer registreres 'på vej' ved run-start og efter AutoDrives genstart ved indlæsning — ellers så mål-valget 0 vogne på vej og sendte alle til samme biogas-drop; startloggen viser det valgte mål (v1.35.3.0)

This commit is contained in:
2026-09-27 10:15:34 +02:00
parent 6fbf05273e
commit 33b4f754b0
6 changed files with 88 additions and 2 deletions
+24
View File
@@ -411,6 +411,30 @@ check("C16b ledigt mål foran mindre fyldt mål med vogn på vej", ADRunsControl
ADSmartPickup.countEnRoute = function() return 1 end
check("C16b lige mange på vej -> mindst fyldte", ADRunsController.chooseTarget(adEnv, multiRun, multiVehicle), 99)
ADSmartPickup.countEnRoute = nil
-- C16c: fyldte traktorer startet i samme run fordeles på målene (in-game 27/9: tre fyldte biogas-traktorer
-- kørte alle til Drop 1, fordi læs der allerede lå på vognen aldrig blev registreret "på vej")
do
unloadAt[99].levels = {[STRAW] = 100000, [TMR] = 100000}
unloadAt[94].levels = {[STRAW] = 200000, [TMR] = 200000, [WATER] = 50000}
local onWay = {}
ADSmartPickup.countEnRoute = function(id, exclude)
local n = 0
for v, target in pairs(onWay) do if v ~= exclude and target == id then n = n + 1 end end
return n
end
ADSmartPickup.registerCargo = function(_, v, targetId) onWay[v] = targetId; return true end
local loadedA = makeVehicle("vehicleLoadedA", "Fyldt A", {STRAW, TMR}, 1000000, 100, 0)
local loadedB = makeVehicle("vehicleLoadedB", "Fyldt B", {STRAW, TMR}, 1000000, 110, 0)
local both = ADRunsController.createRun("To fyldte")
ADRunsController.updateRun(both.id, {targetWayPointIds = {94, 99}})
ADRunsController.assignVehicle(both.id, loadedA)
ADRunsController.assignVehicle(both.id, loadedB)
ADRunsController.startRun(adEnv, both.id)
local a, b = loadedA.ad.stateModule.secondMarkerId, loadedB.ad.stateModule.secondMarkerId
check("C16c første fyldte -> mindst fyldte mål", a, 99)
check("C16c anden fyldte -> det andet mål", b, 94)
ADSmartPickup.countEnRoute, ADSmartPickup.registerCargo = nil, nil
end
ADRunsController.updateRun(multi.id, {targetWayPointIds = {4242}})
check("C16 kun ukendte mål -> noTarget", ADRunsController.validateVehicle(adEnv, ADRuns.getRun(ADRunsController.store, multi.id), multiVehicle).reason, "noTarget")
+7
View File
@@ -244,5 +244,12 @@ do
check("PF ukendt vare -> nil", ADSupplyPlanner.parallelFoodShare(groups, levels, 100000, 99), nil)
end
-- cargoFor: læs der allerede er på vognen ved start tæller som "på vej" (in-game 27/9: tre fyldte
-- biogas-traktorer startet fra fanen kørte alle til Drop 1 — ingen var registreret på vej)
check("CF run-vare på vognen", select(2, ADSupplyPlanner.cargoFor(SILAGE, 427215, {SILAGE})), 427215)
check("CF vare uden for run'et -> nil", ADSupplyPlanner.cargoFor(HAY, 5000, {SILAGE}), nil)
check("CF tom vogn -> nil", ADSupplyPlanner.cargoFor(SILAGE, 0, {SILAGE}), nil)
check("CF ukendt vare -> nil", ADSupplyPlanner.cargoFor(nil, 5000, {SILAGE}), nil)
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)