fix(manuel transport): manuel høster springer kun skærebord-tjekket over når intet er monteret — F111 (hvede) valgte roeoptageren (v1.38.3.0)

This commit is contained in:
2026-09-27 14:24:17 +02:00
parent de88846166
commit f1b8b64668
3 changed files with 11 additions and 6 deletions
+6 -4
View File
@@ -7,12 +7,14 @@ ADManualTransport = {}
ADManualTransport.REMIND_MS = 300000 -- påmindelse hvert 5. minut, mens moden venter på spilleren 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). -- Må høsteren vælges til marken? Det monterede skærebord/optager skal kunne tage afgrøden. Undtagelse: en manuel
-- Ellers skal det monterede skærebord kunne tage afgrøden. -- 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) function ADManualTransport.acceptsHarvester(candidate, fruit)
if fruit == nil then return false end if fruit == nil then return false end
if candidate.manual then return true end local fruits = candidate.fruits or {}
return candidate.fruits ~= nil and candidate.fruits[fruit] == true if candidate.manual and next(fruits) == nil then return true end
return fruits[fruit] == true
end end
-- Klar til overtagelse? s = {atField, fruits = {[fruit] = true}, fruit, controlled, forced}. -- Klar til overtagelse? s = {atField, fruits = {[fruit] = true}, fruit, controlled, forced}.
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="107"> <modDesc descVersion="107">
<author>masterdraco</author> <author>masterdraco</author>
<version>1.38.2.0</version> <version>1.38.3.0</version>
<title> <title>
<en>AD Smart Pickup</en> <en>AD Smart Pickup</en>
</title> </title>
+4 -1
View File
@@ -2,6 +2,7 @@
-- Manuel transport af brede høstere (in-game 27/9: mejetærskere med skærebord er for brede til vejene). -- 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") dofile("FS25_ADSmartPickup/adManualTransport.lua")
local M = ADManualTransport local M = ADManualTransport
local WHEAT, BARLEY = 1, 2
local failures = 0 local failures = 0
local function check(name, actual, expected) local function check(name, actual, expected)
if actual == expected then print("OK " .. name) else 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))) print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual)))
end end
end end
local WHEAT, BARLEY = 1, 2
-- valg af høster -- valg af høster
check("manuel høster uden skærebord kan vælges", M.acceptsHarvester({manual = true, fruits = {}}, WHEAT), true) 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 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("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) 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 -- klar til overtagelse
local header = {[WHEAT] = true} local header = {[WHEAT] = true}