feat(markarbejde): høsten er færdig men høsteren har korn i tanken -> CP genstartes og venter ved kursets ende, tømmevogn sendes ud, marken går først videre når tanken er tom (én gang pr. mark) (v1.43.0.0)
This commit is contained in:
@@ -1019,6 +1019,36 @@ function ADFieldWork.autoNameFleet(adEnv)
|
||||
end
|
||||
end
|
||||
|
||||
-- Høsten er færdig, men den høster der høstede marken har korn i tanken og står ved marken: start dens CP-job igen
|
||||
-- (sidste/nærmeste punkt), så CP venter ved kursets ende til tømmevognene har tømt den. Én gang pr. mark.
|
||||
function ADFieldWork.tryEmptyHarvester(adEnv, field, info)
|
||||
local vehicleId = field.harvestVehicleId
|
||||
if vehicleId == nil or info == nil then return false end
|
||||
local rig = nil
|
||||
for _, candidate in ipairs(ADFieldWork.getRigs(adEnv)) do
|
||||
if candidate.id == vehicleId then rig = candidate break end
|
||||
end
|
||||
if rig == nil then return false end
|
||||
local fill = restLoad(adEnv, rig.vehicle)
|
||||
local near = #(info.verts or {}) >= 3 and ADFieldJobs.insidePolygon(rig.x, rig.z, info.verts)
|
||||
if not near and info.markerId ~= nil then
|
||||
local wayPoint = adEnv.ADGraphManager:getWayPointById(info.markerId)
|
||||
near = wayPoint ~= nil and math.sqrt((wayPoint.x - rig.x) ^ 2 + (wayPoint.z - rig.z) ^ 2) <= 100
|
||||
end
|
||||
if not ADFieldJobs.shouldEmptyHarvester({fill = fill, near = near, busy = rig.busy, controlled = rig.controlled,
|
||||
tried = ADFieldJobs.emptyAttempts[field.id] == true}) then
|
||||
return false
|
||||
end
|
||||
ADFieldJobs.emptyAttempts[field.id] = true
|
||||
local assignment = {vehicleId = rig.id, vehicle = rig.vehicle, fieldId = field.id, role = "harvester", stage = field.stage,
|
||||
helper = false, phase = "driving", since = now(), width = rig.width, groupSize = 1, leader = true,
|
||||
manual = rig.manual == true, emptying = true}
|
||||
ADFieldJobs.state.assignments[rig.id] = assignment
|
||||
log(field.id, "høsten er færdig, men '%s' har %.0f l i tanken — tømmes på marken, før marken går videre", tostring(rig.label), fill)
|
||||
beginWork(adEnv, field, info, assignment)
|
||||
return true
|
||||
end
|
||||
|
||||
function ADFieldWork.follow(adEnv, assignment)
|
||||
local vehicle = assignment.vehicle
|
||||
-- Kun når spilleren selv KØRER (bevæger sig uden Courseplay/AutoDrive) slippes sættet — at sidde i
|
||||
|
||||
Reference in New Issue
Block a user