From 3d6a3761e5866a79c4025636209c4e9278d018c7 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Tue, 29 Sep 2026 15:01:36 +0200 Subject: [PATCH] =?UTF-8?q?feat(kobling):=20spillerens=20AD=20'K=C3=B8r=20?= =?UTF-8?q?til'=20til=20et=20puljeredskabs=20egen=20parkering=20kobler=20d?= =?UTF-8?q?et=20af=20(flow-vogne=20og=20puljeredskaber;=20faste=20s=C3=A6t?= =?UTF-8?q?=20r=C3=B8res=20ikke)=20(v1.56.3.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adHitch.lua | 16 +++++++++++++++- FS25_ADSmartPickup/modDesc.xml | 2 +- tests/test_adHitch.lua | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/FS25_ADSmartPickup/adHitch.lua b/FS25_ADSmartPickup/adHitch.lua index f0a977a..2a67997 100644 --- a/FS25_ADSmartPickup/adHitch.lua +++ b/FS25_ADSmartPickup/adHitch.lua @@ -71,6 +71,13 @@ function ADHitch.stepAction(name) return ADHitch.parseMarker(name) or "arrive" end +-- Spillerens egen AD "Kør til": markørens navn (Connect/Afkobl) først, ellers er puljeredskabets egen parkering +-- stedet vognen sættes af. -> "attach" | "detach" | nil +function ADHitch.manualAction(parsedAction, isPoolImplementPark) + if parsedAction ~= nil then return parsedAction end + return isPoolImplementPark and "detach" or nil +end + -- I en tur: en almindelig markør, der er AD-parkeringen for redskabet bag traktoren, er stedet vognen sættes af. function ADHitch.resolveAction(action, isImplementPark) if action == "arrive" and isImplementPark then return "detach" end @@ -464,7 +471,14 @@ local function watchManualTrips(adEnv) if jobs[vehicle] == nil and vehicle.spec_attacherJoints ~= nil and module ~= nil and module:isActive() and module:getMode() == adEnv.AutoDrive.MODE_DRIVETO then local marker = module:getFirstMarker() - local action = marker ~= nil and ADHitch.parseMarker(marker.name) or nil + local action = nil + if marker ~= nil then + local isPoolPark = false + for _, parkId in ipairs(ADHitch.poolParkIds(adEnv, vehicle)) do + if parkId == marker.id then isPoolPark = true end + end + action = ADHitch.manualAction(ADHitch.parseMarker(marker.name), isPoolPark) + end if action ~= nil then jobs[vehicle] = ADHitch.newJob(marker.id, marker.name, action) end end end diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index b76fc7d..ae1f5b9 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.56.2.0 + 1.56.3.0 <en>AD Smart Pickup</en> diff --git a/tests/test_adHitch.lua b/tests/test_adHitch.lua index ea464a6..dfbda39 100644 --- a/tests/test_adHitch.lua +++ b/tests/test_adHitch.lua @@ -121,5 +121,9 @@ check("transport: allerede klar", #H.stowActions({}), 0) check("transport: kan ikke foldes -> kun sluk/løft", table.concat(H.stowActions({turnedOn = true, lowered = true, unfolded = true, canFold = false}), ","), "turnOff,raise") check("transport: kun udfoldet", table.concat(H.stowActions({unfolded = true, canFold = true}), ","), "fold") check("vagt: stoppedAway med afstand", H.step(H.newJob(1, "Connect x", "attach"), {adActive = false, distance = 37.4, speed = 0}, 4000, false).reason, "stoppedAway (37 m fra markøren)") +-- manuel AD "Kør til": markørnavn først, ellers puljeredskabets egen parkering = kobl af (fast sæt røres ikke) +check("manuel: Connect-markør", H.manualAction("attach", false), "attach") +check("manuel: puljeredskabets parkering", H.manualAction(nil, true), "detach") +check("manuel: almindelig markør", H.manualAction(nil, false), nil) print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL")) os.exit(failures == 0 and 0 or 1)