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)