From eb053083c20d29e27e0d9c30835601f557a71f64 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Thu, 24 Sep 2026 01:54:01 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20lille=20rest=20(<=20100=20l)=20som=20m?= =?UTF-8?q?=C3=A5let=20ikke=20kan=20tage=20regnes=20som=20tom=20=E2=80=94?= =?UTF-8?q?=20traktoren=20blokerer=20ikke=20l=C3=A6ngere=20staldens=20trig?= =?UTF-8?q?ger=20(v1.14.3.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adUnloadWait.lua | 12 +++++++++++- FS25_ADSmartPickup/modDesc.xml | 2 +- tests/test_adSmartPickup.lua | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/FS25_ADSmartPickup/adUnloadWait.lua b/FS25_ADSmartPickup/adUnloadWait.lua index 6f72ac6..edf262b 100644 --- a/FS25_ADSmartPickup/adUnloadWait.lua +++ b/FS25_ADSmartPickup/adUnloadWait.lua @@ -134,7 +134,17 @@ local function startWaiting(adEnv, task) return end local fillType, rest = getRestLoad(adEnv, vehicle) - if fillType == nil or rest < ADUnloadWait.MIN_REST_LITERS then + if fillType == nil then + return + end + if rest < ADUnloadWait.MIN_REST_LITERS then + -- En lille rest som målet ikke kan tage: AutoDrive venter ellers for evigt i triggeren + -- ("til den er tømt") og spærrer for de næste. Regn vognen som tom og kør videre. + local smallFree = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType) + if rest > 0 and (smallFree == nil or smallFree < rest) and task.finished ~= nil then + Logging.info(ADUnloadWait.LOG_PREFIX .. "'%s': %.0f l %s rest kan ikke komme af — regnes som tom, kører videre", tostring(vehicle:getName()), rest, g_fillTypeManager ~= nil and tostring(g_fillTypeManager:getFillTypeNameByIndex(fillType)) or tostring(fillType)) + task:finished() + end return end local free, capacity = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType) diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index d5c44ac..534a112 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.14.2.0 + 1.14.3.0 <en>AD Smart Pickup</en> diff --git a/tests/test_adSmartPickup.lua b/tests/test_adSmartPickup.lua index b0d4e39..38bbd7f 100644 --- a/tests/test_adSmartPickup.lua +++ b/tests/test_adSmartPickup.lua @@ -1141,6 +1141,21 @@ check("N1 strengt opslag finder intet", ADSmartPickup.getLoadStationAtWayPointId check("N1 løst opslag finder tanken", ADSmartPickup.getLoadStationNearWayPointId(FS25_AutoDrive, 1, 1, 40), stations[1]) check("N1 uden for afstanden -> nil", ADSmartPickup.getLoadStationNearWayPointId(FS25_AutoDrive, 1, 1, 20), nil) +-- W16: lille rest (< 100 l) som målet ikke kan tage -> aflæsningen afsluttes, traktoren kører videre +-- (in-game 24/9: "tom" vogn holdt i Cow 1 Food med en rest, to andre ventede bag den) +buildWaitWorld() +local vr, tr = makeUnloadingVehicle("Fastrac Rest", 601, 5000, 50) +setmetatable(tr, {__index = UnloadTask}) +UnloadTask.update(tr, 16) +check("W16 lille rest + fuldt mål -> afsluttet", tr.isFinished, true) +check("W16 ikke sendt til Wait", tr.destinationID, 30) +buildWaitWorld() +waitBarnLevels[STRAW] = 0 +local vr2, tr2 = makeUnloadingVehicle("Fastrac Rest2", 602, 5000, 50) +setmetatable(tr2, {__index = UnloadTask}) +UnloadTask.update(tr2, 16) +check("W16 lille rest med plads -> AD læsser selv af", tr2.isFinished, nil) + -- V: flere traktorer til samme mål fordeler sig — læs på vej tælles med (in-game 24/9: alle 4 Fastrac'er -- hentede det samme). Græs mangler mest (20000/100000), ensilage næst (50000/100000). buildFeedWorld()