From f1b8b64668f58e7f5932e0bdce22558c3c3e3372 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Sun, 27 Sep 2026 14:24:17 +0200 Subject: [PATCH] =?UTF-8?q?fix(manuel=20transport):=20manuel=20h=C3=B8ster?= =?UTF-8?q?=20springer=20kun=20sk=C3=A6rebord-tjekket=20over=20n=C3=A5r=20?= =?UTF-8?q?intet=20er=20monteret=20=E2=80=94=20F111=20(hvede)=20valgte=20r?= =?UTF-8?q?oeoptageren=20(v1.38.3.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adManualTransport.lua | 10 ++++++---- FS25_ADSmartPickup/modDesc.xml | 2 +- tests/test_adManualTransport.lua | 5 ++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/FS25_ADSmartPickup/adManualTransport.lua b/FS25_ADSmartPickup/adManualTransport.lua index 45d5da8..3600112 100644 --- a/FS25_ADSmartPickup/adManualTransport.lua +++ b/FS25_ADSmartPickup/adManualTransport.lua @@ -7,12 +7,14 @@ ADManualTransport = {} ADManualTransport.REMIND_MS = 300000 -- påmindelse hvert 5. minut, mens moden venter på spilleren --- Må høsteren vælges til marken? Manuel: ja — skærebordet monteres først på marken (tjekkes ved overtagelse). --- Ellers skal det monterede skærebord kunne tage afgrøden. +-- Må høsteren vælges til marken? Det monterede skærebord/optager skal kunne tage afgrøden. Undtagelse: en manuel +-- høster UDEN skærebord monteret (det monteres først på marken — tjekkes ved overtagelse). En roeoptager har sin +-- optager fast på og kan aldrig tage hvede (in-game 27/9: F111 valgte roeoptageren). function ADManualTransport.acceptsHarvester(candidate, fruit) if fruit == nil then return false end - if candidate.manual then return true end - return candidate.fruits ~= nil and candidate.fruits[fruit] == true + local fruits = candidate.fruits or {} + if candidate.manual and next(fruits) == nil then return true end + return fruits[fruit] == true end -- Klar til overtagelse? s = {atField, fruits = {[fruit] = true}, fruit, controlled, forced}. diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 049d886..df8d002 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.38.2.0 + 1.38.3.0 <en>AD Smart Pickup</en> diff --git a/tests/test_adManualTransport.lua b/tests/test_adManualTransport.lua index 256ba8f..e6eaeeb 100644 --- a/tests/test_adManualTransport.lua +++ b/tests/test_adManualTransport.lua @@ -2,6 +2,7 @@ -- Manuel transport af brede høstere (in-game 27/9: mejetærskere med skærebord er for brede til vejene). dofile("FS25_ADSmartPickup/adManualTransport.lua") local M = ADManualTransport +local WHEAT, BARLEY = 1, 2 local failures = 0 local function check(name, actual, expected) if actual == expected then print("OK " .. name) else @@ -9,13 +10,15 @@ local function check(name, actual, expected) print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual))) end end -local WHEAT, BARLEY = 1, 2 -- valg af høster check("manuel høster uden skærebord kan vælges", M.acceptsHarvester({manual = true, fruits = {}}, WHEAT), true) check("automatisk høster uden skærebord kan ikke", M.acceptsHarvester({fruits = {}}, WHEAT), false) check("automatisk høster med passende skærebord", M.acceptsHarvester({fruits = {[WHEAT] = true}}, WHEAT), true) check("ukendt afgrøde -> ingen", M.acceptsHarvester({manual = true}, nil), false) +-- in-game 27/9: F111 (hvede) valgte roeoptageren, fordi manuelle høstere slap for skærebord-tjekket +check("manuel roeoptager (fast optager) kan ikke høste hvede", M.acceptsHarvester({manual = true, fruits = {[BARLEY] = true}}, WHEAT), false) +check("manuel mejetærsker med passende skærebord monteret", M.acceptsHarvester({manual = true, fruits = {[WHEAT] = true}}, WHEAT), true) -- klar til overtagelse local header = {[WHEAT] = true}