fix(markarbejde): kultivering/pløjning måles på jorden — er ≥95 % af marken klargjort/pløjet, går trinnet videre uden at sende maskinen ud igen (også efter genindlæsning; F17 blev kultiveret 3 gange) (v1.50.3.0)

This commit is contained in:
2026-09-28 19:57:02 +02:00
parent 8d33499a37
commit 59e18acc9c
5 changed files with 79 additions and 2 deletions
+18
View File
@@ -200,5 +200,23 @@ end
-- pulje: en traktor der henter et redskab tæller som i gang (ellers sendes endnu en ud)
check("pulje: henter -> ingenting", J.decide(mowing, info, {{phase = "fetching"}}, 0).action, "none")
-- JP: klargøring der allerede er gjort (fx efter genindlæsning) går videre uden at sende maskinen ud igen
-- (in-game 28/9: F17 blev kultiveret 3 gange — opgaver gemmes ikke, så "færdig" blev aldrig set)
local cultField = M.with(M.newField(17), {stage = "cultivating", kind = "bare", plan = {mode = "auto"}})
local cultInfo = {id = 17, markerId = 5, kind = "bare", readyRatio = 0, needs = {}}
cultInfo.prepared = 0.98
check("JP kultiveret -> videre", J.decide(cultField, cultInfo, {}, 0).action, "advance")
cultInfo.prepared = 0.4
check("JP halvt kultiveret -> send maskine", J.decide(cultField, cultInfo, {}, 0).action, "dispatch")
cultInfo.prepared = nil
check("JP ukendt jord -> som før (send)", J.decide(cultField, cultInfo, {}, 0).action, "dispatch")
cultInfo.prepared = 0.98
check("JP kultivator i gang -> vent på den", J.decide(cultField, cultInfo, {{phase = "working", stage = "cultivating"}}, 0).action, "none")
local plowField = M.with(cultField, {stage = "plowing"})
check("JP kultiveret er ikke pløjet -> send plov", J.decide(plowField, cultInfo, {}, 0).action, "dispatch")
cultInfo.plowed = 0.97
check("JP pløjet -> videre", J.decide(plowField, cultInfo, {}, 0).action, "advance")
local sowField = M.with(cultField, {stage = "sowing"})
check("JP såning berøres ikke af klargjort jord", J.decide(sowField, cultInfo, {}, 0).action ~= "advance", true)
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)
+10
View File
@@ -78,5 +78,15 @@ check("F9 fase klar", F.growthPhase(6, potato), "ready")
check("F9 toppet klar", F.growthPhase(10, potato), "ready")
check("F9 ingen forberedelse", F.isPreparable(6, {minPreparingGrowthState = -1}), false)
-- jordtype -> klargjort/pløjet (værdierne kommer fra spillets fieldGroundSystem)
local groundValues = {STUBBLE_TILLAGE = 1, CULTIVATED = 2, SEEDBED = 3, PLOWED = 4, ROLLED_SEEDBED = 5, SOWN = 6}
local function cls(v) local p, pl = ADFields.classifyGround(v, groundValues) return tostring(p) .. "|" .. tostring(pl) end
check("jord: pløjet", cls(4), "true|true")
check("jord: kultiveret", cls(2), "true|false")
check("jord: stubbearbejdet", cls(1), "true|false")
check("jord: sået", cls(6), "false|false")
check("jord: ukendt værdi", cls(nil), "nil|nil")
groundValues.NONE = 0
check("jord: ingen markjord tæller ikke med", cls(0), "nil|nil")
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)