feat(marker): vejr (vent på tørvejr), påfyldning via AutoDrive LOAD+CP, beskeder i spillet; Start nu virker på bare marker
This commit is contained in:
@@ -242,6 +242,7 @@ end
|
||||
local function fail(fieldId, text)
|
||||
note(fieldId, {retryAt = now() + ADFieldModel.RETRY_MS, reason = {text = tostring(text)}})
|
||||
log(fieldId, "%s", tostring(text))
|
||||
ADFieldJobs.notify(string.format("F%s: %s", tostring(fieldId), tostring(text)), true)
|
||||
end
|
||||
|
||||
-- Hvad et sæt skal kunne ud over rollen (afgrøde, frø, ukrudtets størrelse).
|
||||
@@ -339,6 +340,32 @@ local function prepareCollector(adEnv, field, info, assignment)
|
||||
return true
|
||||
end
|
||||
|
||||
-- Påfyldning undervejs (såmaskine/sprøjte/spreder): AutoDrive LOAD med automatisk påfyldningsmål og
|
||||
-- hjælper = Courseplay. Når CP melder tom (onCpEmpty), kører AD til nærmeste påfyldning af varen, fylder
|
||||
-- op, kører tilbage til F-markøren og genstarter CP. Courseplay og AutoDrive er bygget til netop dette.
|
||||
local function prepareRefill(adEnv, field, info, assignment)
|
||||
local vehicle = assignment.vehicle
|
||||
local fillType = ADCpBridge.getRefillFillType(vehicle)
|
||||
if fillType == nil then return end
|
||||
local module = stateModule(vehicle)
|
||||
local ok = pcall(function()
|
||||
module:setMode(adEnv.AutoDrive.MODE_LOAD)
|
||||
module:setFirstMarkerByWayPointId(info.markerId)
|
||||
module:setSecondMarkerByWayPointId(info.markerId)
|
||||
module:setAutomaticPickupTarget(true)
|
||||
module:setFillType(fillType)
|
||||
module:setStartHelper(true)
|
||||
module.usedHelper = helperCp(adEnv)
|
||||
enableParkAtJobFinished(vehicle)
|
||||
module:raiseDirtyFlag()
|
||||
end)
|
||||
if ok then
|
||||
assignment.adHandlesEnd = true
|
||||
local name = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(fillType) or tostring(fillType)
|
||||
log(field.id, "'%s' fyldes op med %s af AutoDrive når den er tom", ADRuns.vehicleLabel(vehicle), tostring(name))
|
||||
end
|
||||
end
|
||||
|
||||
-- Aflæsningsvogn under høst: Courseplays combine-unloader med stationen fra silovalget.
|
||||
local function beginUnloader(adEnv, field, info, assignment)
|
||||
local vehicle = assignment.vehicle
|
||||
@@ -407,7 +434,12 @@ local function beginWork(adEnv, field, info, assignment)
|
||||
end
|
||||
return
|
||||
end
|
||||
if assignment.role == "collector" and not prepareCollector(adEnv, field, info, assignment) then return end
|
||||
if assignment.role == "collector" then
|
||||
if not prepareCollector(adEnv, field, info, assignment) then return end
|
||||
assignment.adHandlesEnd = true
|
||||
elseif assignment.role == "seeder" or assignment.role == "fertilizer" or assignment.role == "limer" or assignment.role == "weeder" then
|
||||
prepareRefill(adEnv, field, info, assignment)
|
||||
end
|
||||
if assignment.role == "seeder" then
|
||||
local okSeed, seedError = ADCpBridge.setSeedFruit(vehicle, ADFieldWork.sowFruitIndex(field))
|
||||
if not okSeed then
|
||||
@@ -462,8 +494,8 @@ end
|
||||
local function finishAssignment(adEnv, assignment)
|
||||
local vehicle = assignment.vehicle
|
||||
log(assignment.fieldId, "%s '%s' færdig", assignment.role, ADRuns.vehicleLabel(vehicle))
|
||||
-- læssevognen parkeres af AutoDrive selv (onCpFinished med parkering sat)
|
||||
local park = assignment.role ~= "collector" and parkMarkerId(adEnv, vehicle) or nil
|
||||
-- læssevogn/påfyldte sæt parkeres af AutoDrive selv (onCpFinished med parkering sat)
|
||||
local park = not assignment.adHandlesEnd and parkMarkerId(adEnv, vehicle) or nil
|
||||
if park ~= nil then startAd(adEnv, vehicle, adEnv.AutoDrive.MODE_DRIVETO, park, nil) end
|
||||
restoreToolOffset(assignment)
|
||||
assignment.phase = "finished"
|
||||
|
||||
Reference in New Issue
Block a user