feat(marker): smalle standardmaskiner — vender/river i egen bredde, læssevogn følger rivens kursus; Riv også til ensilage (v1.23.0.0)
Brugerspørgsmål 25/9: få standardredskaber har 40,8 m. Vender og river kører hele marken i deres egen bredde; efter riv ligger skåret midt i banen, så læssevognen kopierer rivens kursus uden breddekrav. Uden riv kræver læssevognen stadig slåbredden (nu med hint 'sæt Riv til').
This commit is contained in:
@@ -38,14 +38,30 @@ function ADFieldModel.newField(id)
|
||||
}
|
||||
end
|
||||
|
||||
-- Hø vendes; Riv kan vælges til både hø og ensilage (samler skårene midt i rivens baner, så også
|
||||
-- smalle standard-læssevogne kan tage dem).
|
||||
function ADFieldModel.workStages(plan)
|
||||
if plan.product == "hay" then
|
||||
if plan.rake then
|
||||
return {"mowing", "tedding", "raking", "collecting"}
|
||||
end
|
||||
return {"mowing", "tedding", "collecting"}
|
||||
local stages = {"mowing"}
|
||||
if plan.product == "hay" then table.insert(stages, "tedding") end
|
||||
if plan.rake then table.insert(stages, "raking") end
|
||||
table.insert(stages, "collecting")
|
||||
return stages
|
||||
end
|
||||
|
||||
-- Krævet bredde for et sæt: kun læssevognen uden riv skal dække slåmaskinens baner. Vender og river kører
|
||||
-- hele marken i deres egen bredde; efter riv ligger skåret midt i banen, så vognens bredde er ligegyldig.
|
||||
function ADFieldModel.requiredWidth(field, role)
|
||||
if role == "collector" and not field.plan.rake then
|
||||
return field.mowWidth
|
||||
end
|
||||
return {"mowing", "collecting"}
|
||||
return nil
|
||||
end
|
||||
|
||||
-- Hvilket tidligere kursus sættet skal køre: læssevognen følger skårene (rivens kursus, ellers
|
||||
-- slåmaskinens); de andre laver deres eget i deres egen bredde.
|
||||
function ADFieldModel.courseSource(field, role)
|
||||
if role ~= "collector" then return nil end
|
||||
return field.plan.rake and "rake" or "mower"
|
||||
end
|
||||
|
||||
function ADFieldModel.roleFor(stage)
|
||||
@@ -93,6 +109,7 @@ function ADFieldModel.start(field)
|
||||
copy.reason = nil
|
||||
copy.mowWidth = nil
|
||||
copy.mowVehicleId = nil
|
||||
copy.rakeVehicleId = nil
|
||||
return copy
|
||||
end
|
||||
|
||||
@@ -158,6 +175,7 @@ function ADFieldModel.toRecord(field)
|
||||
rake = field.plan.rake and 1 or 0, store = table.concat(field.plan.storeBuildingIds, " "),
|
||||
mowWidth = field.mowWidth or 0,
|
||||
mowVehicle = field.mowVehicleId or "",
|
||||
rakeVehicle = field.rakeVehicleId or "",
|
||||
}
|
||||
end
|
||||
|
||||
@@ -170,5 +188,6 @@ function ADFieldModel.fromRecord(record)
|
||||
for id in string.gmatch(record.store or "", "%S+") do table.insert(field.plan.storeBuildingIds, id) end
|
||||
field.mowWidth = (record.mowWidth or 0) > 0 and record.mowWidth or nil
|
||||
field.mowVehicleId = record.mowVehicle ~= nil and record.mowVehicle ~= "" and record.mowVehicle or nil
|
||||
field.rakeVehicleId = record.rakeVehicle ~= nil and record.rakeVehicle ~= "" and record.rakeVehicle or nil
|
||||
return field
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user