feat(marker): mål-afgrøde pr. mark ('vælg mark + afgrøde, glem den') + brug alle ledige maskiner (standard)
This commit is contained in:
@@ -234,5 +234,41 @@ check("M18 uden forespørgsel -> venter", M.onReadiness(M.forceReady(M.newField(
|
||||
check("M18 vejrfølsom: høst", M.isWeatherSensitive("harvesting", {}, "harvest"), true)
|
||||
check("M18 vejrfølsom: kultivering ikke", M.isWeatherSensitive("cultivating", {}, "harvest"), false)
|
||||
|
||||
-- M19: mål-afgrøde — "vælg mark + afgrøde, glem den"
|
||||
local target = M.with(M.newField(80), {plan = {targetFruit = "WHEAT"}})
|
||||
local wheatNow = M.applyTarget(target.plan, "harvest", "BARLEY")
|
||||
check("M19 mål -> auto", wheatNow.mode, "auto")
|
||||
check("M19 høst byg -> så hvede", wheatNow.sow, true)
|
||||
check("M19 såafgrøde = mål", wheatNow.sowFruit, "WHEAT")
|
||||
check("M19 kæde: høst -> kultivér -> så", table.concat(M.workStages(wheatNow, "harvest", {}), ","), "harvesting,cultivating,sowing")
|
||||
local grassToWheat = M.applyTarget(target.plan, "mowable", "GRASS")
|
||||
check("M19 græs -> hvede: slå, saml op, så klargør og så", table.concat(M.workStages(grassToWheat, "mowable", {}), ","), "mowing,collecting,cultivating,sowing")
|
||||
local grassTarget = M.applyTarget(M.with(M.newField(81), {plan = {targetFruit = "GRASS"}}).plan, "mowable", "GRASS")
|
||||
check("M19 græs -> græs: kun slå og saml op", table.concat(M.workStages(grassTarget, "mowable", {}), ","), "mowing,collecting")
|
||||
check("M19 græs -> græs: ingen såning", grassTarget.sow, false)
|
||||
local bareTarget = M.applyTarget(target.plan, "bare", nil)
|
||||
check("M19 bar mark -> klargør og så", table.concat(M.workStages(bareTarget, "bare", {plow = true}), ","), "plowing,sowing")
|
||||
check("M19 uden mål: plan urørt", M.applyTarget(M.newField(82).plan, "harvest", "BARLEY").mode, "manual")
|
||||
local started = M.start(target, "harvest", {}, "BARLEY")
|
||||
check("M19 start anvender målet", started.plan.sowFruit, "WHEAT")
|
||||
check("M19 start: høst først", started.stage, "harvesting")
|
||||
check("M19 målet gemmes", M.fromRecord(M.toRecord(started)).plan.targetFruit, "WHEAT")
|
||||
check("M19 klargøring efter slåning gemmes", M.fromRecord(M.toRecord(M.start(target, "mowable", {}, "GRASS"))).plan.prepAfterMow, true)
|
||||
-- M20: skal en bar mark med mål starte? (kun når målafgrøden kan sås nu)
|
||||
check("M20 bar + sås nu -> start", M.shouldStartBare(target, "bare", true), true)
|
||||
check("M20 bar + ikke såtid -> vent", M.shouldStartBare(target, "bare", false), false)
|
||||
check("M20 uden mål -> ingen auto-start", M.shouldStartBare(M.newField(83), "bare", true), false)
|
||||
check("M20 voksende mark -> nej", M.shouldStartBare(target, "harvest", true), false)
|
||||
check("M20 arbejdende mark -> nej", M.shouldStartBare(started, "bare", true), false)
|
||||
check("M20 færdig (lige sået) -> nej, ingen dobbelt-såning", M.shouldStartBare(M.with(target, {stage = "done"}), "bare", true), false)
|
||||
|
||||
-- M21: vælg mål-afgrøde fra menuen: auto, og en færdig mark nulstilles så den kan starte
|
||||
local chosen = M.setTarget(M.with(M.newField(84), {stage = "done"}), "CANOLA")
|
||||
check("M21 mål sat", chosen.plan.targetFruit, "CANOLA"); check("M21 auto", chosen.plan.mode, "auto")
|
||||
check("M21 færdig -> venter", chosen.stage, "idle")
|
||||
check("M21 arbejdende mark beholder trin", M.setTarget(started, "CANOLA").stage, "harvesting")
|
||||
local cleared = M.setTarget(chosen, "")
|
||||
check("M21 mål fjernet", cleared.plan.targetFruit, ""); check("M21 tilbage til manuel", cleared.plan.mode, "manual")
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user