diff --git a/FS25_ADSmartPickup/adFieldWork.lua b/FS25_ADSmartPickup/adFieldWork.lua index 725bc9c..b46b123 100644 --- a/FS25_ADSmartPickup/adFieldWork.lua +++ b/FS25_ADSmartPickup/adFieldWork.lua @@ -904,14 +904,22 @@ local function finishAssignment(adEnv, assignment) if assignment.refillFillType ~= nil and ADCpBridge.getRefillLevel(vehicle, assignment.refillFillType) <= 0 then local name = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(assignment.refillFillType) or "?" ADFieldWork.release(assignment) + if ADHitch ~= nil then ADHitch.returnHome(adEnv, vehicle) end fail(assignment.fieldId, string.format("'%s' er tom for %s — fyld op, så fortsætter marken", ADRuns.vehicleLabel(vehicle), tostring(name))) return end log(assignment.fieldId, "%s '%s' færdig", assignment.role, ADRuns.vehicleLabel(vehicle)) -- læssevogn/påfyldte sæt parkeres af AutoDrive selv (onCpFinished med parkering sat) -- manuel transport: ALDRIG ud på vejen med AutoDrive (skærebordet sidder på) — spilleren henter den - local park = not assignment.adHandlesEnd and not assignment.manual and parkMarkerId(adEnv, vehicle) or nil + -- puljeredskab bag traktoren: sæt det af på sin parkering, traktoren hjem (afhænger kun af hvad der hænger + -- bag, så det virker også efter genindlæsning); ellers som før + local pooled = not assignment.adHandlesEnd and not assignment.manual and ADHitch ~= nil + and ADHitch.returnHome(adEnv, vehicle, function(_, ok, detail) + if not ok then log(assignment.fieldId, "'%s' kom ikke hjem fra puljen: %s", ADRuns.vehicleLabel(vehicle), tostring(detail)) end + end) + local park = not pooled and not assignment.adHandlesEnd and not assignment.manual and parkMarkerId(adEnv, vehicle) or nil if park ~= nil then startAd(adEnv, vehicle, adEnv.AutoDrive.MODE_DRIVETO, park, nil) end + if pooled then log(assignment.fieldId, "'%s' sætter redskabet af og kører hjem", ADRuns.vehicleLabel(vehicle)) end if assignment.manual then ADFieldJobs.notify(string.format("F%s høstet — afmontér skærebordet og kør '%s' hjem", tostring(assignment.fieldId), ADRuns.vehicleLabel(vehicle)), true) end @@ -1207,9 +1215,11 @@ function ADFieldWork.follow(adEnv, assignment) else ADFieldWork.release(assignment) fail(assignment.fieldId, string.format("%s nåede ikke %s (%.0f m væk)", ADRuns.vehicleLabel(vehicle), tostring(info ~= nil and info.markerName or "?"), distance)) - -- ikke efterladt midt på vejen/ved en mark: hjem til parkeringen - local park = parkMarkerId(adEnv, vehicle) - if park ~= nil then startAd(adEnv, vehicle, adEnv.AutoDrive.MODE_DRIVETO, park, nil) end + -- ikke efterladt midt på vejen/ved en mark: hjem til parkeringen (puljeredskab sættes af først) + if not (ADHitch ~= nil and ADHitch.returnHome(adEnv, vehicle)) then + local park = parkMarkerId(adEnv, vehicle) + if park ~= nil then startAd(adEnv, vehicle, adEnv.AutoDrive.MODE_DRIVETO, park, nil) end + end end end elseif assignment.phase == "waitingCourse" then