From 716045a36b738f792fe61a05db265fdee1ed14bc Mon Sep 17 00:00:00 2001 From: masterdraco Date: Fri, 25 Sep 2026 22:57:48 +0200 Subject: [PATCH] =?UTF-8?q?fix(marker):=20arbejdsbredde=20=3D=20Courseplay?= =?UTF-8?q?s=20egen=20workWidth-indstilling=20n=C3=A5r=20den=20findes=20(v?= =?UTF-8?q?1.21.2.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In-game 25/9: variabel bredde gav 20,8 m for BiG M 450, Courseplay-HUD'en viser 40,8 m. --- FS25_ADSmartPickup/adCpBridge.lua | 10 ++++++++++ FS25_ADSmartPickup/modDesc.xml | 2 +- docs/BRUGERMANUAL.md | 2 +- docs/USER_MANUAL.md | 2 +- tests/test_adCpBridge.lua | 9 +++++++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/FS25_ADSmartPickup/adCpBridge.lua b/FS25_ADSmartPickup/adCpBridge.lua index 6297865..fad1bde 100644 --- a/FS25_ADSmartPickup/adCpBridge.lua +++ b/FS25_ADSmartPickup/adCpBridge.lua @@ -44,7 +44,17 @@ local function variableWidth(object) return nil end +-- Courseplays egen bredde-indstilling (den i HUD'en) er den marken faktisk køres med. +local function courseplayWidth(vehicle) + if vehicle.getCourseGeneratorSettings == nil then return nil end + local ok, width = pcall(function() return vehicle:getCourseGeneratorSettings().workWidth:getValue() end) + if ok and type(width) == "number" and width > 0 then return width end + return nil +end + function ADCpBridge.getWorkWidth(vehicle) + local cpWidth = courseplayWidth(vehicle) + if cpWidth ~= nil then return cpWidth end local best = 0 for _, object in ipairs(collect(vehicle)) do local variable = variableWidth(object) diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 4e9a5d9..7e9e371 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.21.1.0 + 1.21.2.0 <en>AD Smart Pickup</en> diff --git a/docs/BRUGERMANUAL.md b/docs/BRUGERMANUAL.md index 91b302c..502412d 100644 --- a/docs/BRUGERMANUAL.md +++ b/docs/BRUGERMANUAL.md @@ -1,6 +1,6 @@ # AD Smart Pickup — brugermanual -Version 1.21.1 · Farming Simulator 25 · tillæg til AutoDrive +Version 1.21.2 · Farming Simulator 25 · tillæg til AutoDrive *English version: [USER_MANUAL.md](USER_MANUAL.md)* diff --git a/docs/USER_MANUAL.md b/docs/USER_MANUAL.md index 15f99a8..fc43a4d 100644 --- a/docs/USER_MANUAL.md +++ b/docs/USER_MANUAL.md @@ -1,6 +1,6 @@ # AD Smart Pickup — user manual -Version 1.21.1 · Farming Simulator 25 · add-on for AutoDrive +Version 1.21.2 · Farming Simulator 25 · add-on for AutoDrive *Dansk version: [BRUGERMANUAL.md](BRUGERMANUAL.md)* diff --git a/tests/test_adCpBridge.lua b/tests/test_adCpBridge.lua index 002250d..d7f281b 100644 --- a/tests/test_adCpBridge.lua +++ b/tests/test_adCpBridge.lua @@ -26,5 +26,14 @@ check("W2 AI-markører", ADCpBridge.getWorkWidth(plain), 9.5) local mower = {getVariableWorkWidth = function(_, isLeft) return isLeft and 20.4 or -20.4, nil, true end} check("W3 selvkørende", ADCpBridge.getWorkWidth(mower), 40.8) +-- W4: Courseplays egen bredde (HUD'en) vinder — det er den marken køres med +local cpVehicle = {getVariableWorkWidth = function(_, isLeft) return isLeft and 20.4 or -0.4, nil, true end, + getCourseGeneratorSettings = function() return {workWidth = {getValue = function() return 40.8 end}} end} +check("W4 Courseplay-bredde", ADCpBridge.getWorkWidth(cpVehicle), 40.8) +-- W5: Courseplay-indstilling 0/ugyldig -> egen beregning +local zeroCp = {getVariableWorkWidth = function(_, isLeft) return isLeft and 5 or -5, nil, true end, + getCourseGeneratorSettings = function() return {workWidth = {getValue = function() return 0 end}} end} +check("W5 CP 0 -> egen beregning", ADCpBridge.getWorkWidth(zeroCp), 10) + print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL")) os.exit(failures == 0 and 0 or 1)