fix(markarbejde): høst er først færdig når under 5 % af hele marken står (standingRatio); klargøring med mere stående afgrøde spoles tilbage — en halvt høstet mark kunne gå til kultivering (v1.42.3.0)
This commit is contained in:
@@ -39,10 +39,16 @@ ADFieldJobs.PREP_STAGES = {strawCollecting = true, baling = true, baleCollecting
|
|||||||
|
|
||||||
-- ---- ren beslutning ----
|
-- ---- ren beslutning ----
|
||||||
|
|
||||||
-- Er afgrøden taget (trin med afgrøde)? Slåning: under 50 % står. Høst: marken er bar eller under 50 %.
|
-- Er afgrøden taget (trin med afgrøde)? Slåning: under 50 % står. Høst: marken er bar, eller under 5 % af HELE
|
||||||
|
-- marken står (rester i hjørnerne). readyRatio regner kun med den afgrøde der er tilbage, så en halvt høstet mark
|
||||||
|
-- lignede "væk" (in-game 27/9 F111 gik til kultivering med halvdelen stående).
|
||||||
|
ADFieldJobs.HARVEST_DONE_RATIO = 0.05
|
||||||
local function cropGone(stage, info)
|
local function cropGone(stage, info)
|
||||||
if info == nil then return false end
|
if info == nil then return false end
|
||||||
if stage == "harvesting" and info.kind == "bare" then return true end
|
if stage == "harvesting" and info.kind == "bare" then return true end
|
||||||
|
if stage == "harvesting" and type(info.standingRatio) == "number" then
|
||||||
|
return info.standingRatio < ADFieldJobs.HARVEST_DONE_RATIO
|
||||||
|
end
|
||||||
return (info.readyRatio or 0) < ADFieldModel.CUT_RATIO
|
return (info.readyRatio or 0) < ADFieldModel.CUT_RATIO
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -129,8 +135,9 @@ function ADFieldJobs.decide(field, info, assignments, now, env)
|
|||||||
end
|
end
|
||||||
-- klargøring på en mark hvor afgrøden står uhøstet: tilbage til klar (in-game 27/9 F16: kartofler
|
-- klargøring på en mark hvor afgrøden står uhøstet: tilbage til klar (in-game 27/9 F16: kartofler
|
||||||
-- blev regnet som høstet, og marken stod til kultivering med afgrøden i jorden)
|
-- blev regnet som høstet, og marken stod til kultivering med afgrøden i jorden)
|
||||||
|
local standing = info ~= nil and type(info.standingRatio) == "number" and info.standingRatio >= ADFieldJobs.HARVEST_DONE_RATIO
|
||||||
if ADFieldJobs.PREP_STAGES[field.stage] and info ~= nil and info.kind == "harvest" and info.phase == "ready"
|
if ADFieldJobs.PREP_STAGES[field.stage] and info ~= nil and info.kind == "harvest" and info.phase == "ready"
|
||||||
and (info.readyRatio or 0) >= ADFieldModel.READY_RATIO then
|
and (standing or (info.readyRatio or 0) >= ADFieldModel.READY_RATIO) then
|
||||||
return {action = "rewind"}
|
return {action = "rewind"}
|
||||||
end
|
end
|
||||||
if not ADFieldModel.isWorking(field) then
|
if not ADFieldModel.isWorking(field) then
|
||||||
|
|||||||
@@ -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.42.2.0</version>
|
<version>1.42.3.0</version>
|
||||||
<title>
|
<title>
|
||||||
<en>AD Smart Pickup</en>
|
<en>AD Smart Pickup</en>
|
||||||
</title>
|
</title>
|
||||||
|
|||||||
@@ -158,5 +158,17 @@ check("MD første udsendelse", ADFieldJobs.mayDispatch(5000, nil), true)
|
|||||||
check("MD for tæt på forrige", ADFieldJobs.mayDispatch(5000 + ADFieldJobs.DISPATCH_GAP_MS - 1, 5000), false)
|
check("MD for tæt på forrige", ADFieldJobs.mayDispatch(5000 + ADFieldJobs.DISPATCH_GAP_MS - 1, 5000), false)
|
||||||
check("MD efter mellemrummet", ADFieldJobs.mayDispatch(5000 + ADFieldJobs.DISPATCH_GAP_MS, 5000), true)
|
check("MD efter mellemrummet", ADFieldJobs.mayDispatch(5000 + ADFieldJobs.DISPATCH_GAP_MS, 5000), true)
|
||||||
|
|
||||||
|
|
||||||
|
-- halvt høstet mark (in-game 27/9 F111): høsten er ikke færdig før næsten intet står; en mark i klargøring med
|
||||||
|
-- stående afgrøde spoles tilbage
|
||||||
|
do
|
||||||
|
local halfInfo = {id = 111, markerId = 5, kind = "harvest", phase = "ready", readyRatio = 0.45, standingRatio = 0.45, fruitIndex = 1}
|
||||||
|
check("HH halvt høstet uden høster -> send høster (ikke videre)", J.decide(harvesting, halfInfo, {}, 0).action, "dispatch")
|
||||||
|
local doneInfo = {id = 111, markerId = 5, kind = "harvest", phase = "ready", readyRatio = 0.02, standingRatio = 0.02, fruitIndex = 1}
|
||||||
|
check("HH næsten intet står -> videre", J.decide(harvesting, doneInfo, {}, 0).action, "advance")
|
||||||
|
local cultivating = M.with(harvesting, {stage = "cultivating"})
|
||||||
|
check("HH klargøring med halv mark stående -> spol tilbage", J.decide(cultivating, halfInfo, {}, 0).action, "rewind")
|
||||||
|
end
|
||||||
|
|
||||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||||
os.exit(failures == 0 and 0 or 1)
|
os.exit(failures == 0 and 0 or 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user