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}