From 2dc39b7849efc51e9762bed3955a7f18da3ea840 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Mon, 28 Sep 2026 18:05:58 +0200 Subject: [PATCH] =?UTF-8?q?feat(pulje):=20n=C3=A5r=20opgaven=20slutter=20(?= =?UTF-8?q?eller=20fejler)=20s=C3=A6ttes=20puljeredskabet=20af=20p=C3=A5?= =?UTF-8?q?=20sin=20parkering=20og=20traktoren=20k=C3=B8rer=20hjem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adFieldWork.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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