From d41e2776de1759e3934ba3f7275c68c392802e82 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Fri, 25 Sep 2026 00:27:32 +0200 Subject: [PATCH] =?UTF-8?q?fix(status):=20valgt=20lager=20der=20ikke=20kan?= =?UTF-8?q?=20bruges=20viser=20den=20pr=C3=A6cise=20grund=20i=20status=20(?= =?UTF-8?q?ikke=20'intet=20lager=20med=20plads')=20(v1.19.10.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adOutbound.lua | 2 ++ FS25_ADSmartPickup/adOutboundPlanner.lua | 3 +++ FS25_ADSmartPickup/modDesc.xml | 2 +- docs/BRUGERMANUAL.md | 2 +- docs/USER_MANUAL.md | 2 +- tests/test_adOutboundPlanner.lua | 6 ++++++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/FS25_ADSmartPickup/adOutbound.lua b/FS25_ADSmartPickup/adOutbound.lua index 4e0c2dd..456bbea 100644 --- a/FS25_ADSmartPickup/adOutbound.lua +++ b/FS25_ADSmartPickup/adOutbound.lua @@ -210,6 +210,7 @@ local function findStoreMarker(adEnv, vehicle, product, capacity, sources, liter end end if hasForcedShed then + product.storeReason = table.concat(reasons, "; ") warnOnce(adEnv, vehicle, "forcedShed:" .. tostring(product.name) .. ":" .. table.concat(reasons, ";"), string.format("'%s': %s kan ikke sættes på lager — %s", tostring(ADRuns.vehicleLabel(vehicle)), tostring(product.name), table.concat(reasons, "; "))) return nil end @@ -233,6 +234,7 @@ local function findStoreMarker(adEnv, vehicle, product, capacity, sources, liter if #forced > 0 and ADLoadSwap.findForcedDumpMarker ~= nil then local chosen, why = ADLoadSwap.findForcedDumpMarker(adEnv, vehicle, product.fillType, liters, forced, isReachable) if chosen == nil then + product.storeReason = tostring(why) warnOnce(adEnv, vehicle, "forced:" .. tostring(product.name) .. ":" .. tostring(why), string.format("'%s': %s kan ikke læsses af — %s", tostring(ADRuns.vehicleLabel(vehicle)), tostring(product.name), tostring(why))) return nil end diff --git a/FS25_ADSmartPickup/adOutboundPlanner.lua b/FS25_ADSmartPickup/adOutboundPlanner.lua index 1ae8452..8b5b744 100644 --- a/FS25_ADSmartPickup/adOutboundPlanner.lua +++ b/FS25_ADSmartPickup/adOutboundPlanner.lua @@ -103,6 +103,9 @@ local function reasonFor(product, e, input) return product.name .. ": intet nåeligt salgssted" end if wantsStore(product.policy) and product.store == nil and (e.fullLoad or e.storageHigh) and not e.priceOk then + if product.storeReason ~= nil then + return product.name .. ": " .. product.storeReason + end return product.name .. ": intet lager med plads (silo eller egen fabrik der bruger varen)" end local parts = {} diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index bbb71f7..cef52c3 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.19.9.0 + 1.19.10.0 <en>AD Smart Pickup</en> diff --git a/docs/BRUGERMANUAL.md b/docs/BRUGERMANUAL.md index ffd169d..f0ba78c 100644 --- a/docs/BRUGERMANUAL.md +++ b/docs/BRUGERMANUAL.md @@ -1,6 +1,6 @@ # AD Smart Pickup — brugermanual -Version 1.19.9 · Farming Simulator 25 · tillæg til AutoDrive +Version 1.19.10 · Farming Simulator 25 · tillæg til AutoDrive *English version: [USER_MANUAL.md](USER_MANUAL.md)* diff --git a/docs/USER_MANUAL.md b/docs/USER_MANUAL.md index 8c9c46d..71f8acc 100644 --- a/docs/USER_MANUAL.md +++ b/docs/USER_MANUAL.md @@ -1,6 +1,6 @@ # AD Smart Pickup — user manual -Version 1.19.9 · Farming Simulator 25 · add-on for AutoDrive +Version 1.19.10 · Farming Simulator 25 · add-on for AutoDrive *Dansk version: [BRUGERMANUAL.md](BRUGERMANUAL.md)* diff --git a/tests/test_adOutboundPlanner.lua b/tests/test_adOutboundPlanner.lua index de3f99a..60a9779 100644 --- a/tests/test_adOutboundPlanner.lua +++ b/tests/test_adOutboundPlanner.lua @@ -167,5 +167,11 @@ check("P16 fodring: mål = valgt drop", tripFeed and tripFeed.targetWayPointId, local tinyProduct = product("LIQUIDMANURE", FORAGE, "store", {{wayPointId = 2, available = 3000, level = 3000, capacity = 500000}}, nil, feedStore) check("P16 fodring: under minimum -> ingen tur", P.plan(input({tinyProduct}, {capacity = 100000, feedMode = true})), nil) +-- P17: valgt lager ("Lager til") kan ikke bruges -> begrundelsen er den præcise grund, ikke "intet lager med plads" +local blocked = product("EGG", FORAGE, "store", {{wayPointId = 2, available = 3000000, level = 3000000, capacity = 3500000}}, nil, nil) +blocked.storeReason = "Bale & Pallet Storage: ingen vej til 'Chicken Storage Unload'" +local _, reasons17 = P.plan(input({blocked})) +check("P17 præcis grund i status", reasons17[1], "EGG: Bale & Pallet Storage: ingen vej til 'Chicken Storage Unload'") + print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL")) os.exit(failures == 0 and 0 or 1)