From b33f7682b42c574e56856dd238e73ceb8df2a6ad Mon Sep 17 00:00:00 2001 From: masterdraco Date: Tue, 29 Sep 2026 21:21:18 +0200 Subject: [PATCH] =?UTF-8?q?fix(cp):=20genstart=20efter=20indl=C3=A6sning?= =?UTF-8?q?=20kun=20n=C3=A5r=20CP's=20HUD-job=20er=20markarbejde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moddets markopgaver starter CP med eget job; HUD'en kunne stå på bunkersilo, og HUD-starten efter indlæsning gav 'CP: No silo found' (v1.60.13.0). --- CHANGELOG.md | 2 ++ FS25_ADSmartPickup/adCpResume.lua | 15 +++++++++++++-- FS25_ADSmartPickup/modDesc.xml | 2 +- tests/test_adCpResume.lua | 7 +++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6b708..99db705 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ står i [docs/BRUGERMANUAL.md](docs/BRUGERMANUAL.md) (dansk) og [docs/USER_MANUA ## 1.60 — "Kræver handling" → flow, menuplacering, flow-vogne i guiden +- **1.60.13** CP-genstart efter indlæsning starter kun maskiner, hvis valgte CP-job er markarbejde. Moddets + markopgaver starter CP med eget job, så HUD'en kunne stå på fx bunkersilo, og HUD-starten gav "CP: No silo found". - **1.60.12** "Start alle" ophæver altid pausen: et flow på pause, hvis traktorer stadig kørte en gemt AD-tur, blev talt som "kørte allerede" og forblev stoppet — traktoren hentede sin vogn og kørte den straks hjem igen. - **1.60.11** Udkørselsregler vises kun, når en vare bruger dem: salgsgrænserne ("Sælg fra", "Sælg altid diff --git a/FS25_ADSmartPickup/adCpResume.lua b/FS25_ADSmartPickup/adCpResume.lua index 4d78937..ed414d6 100644 --- a/FS25_ADSmartPickup/adCpResume.lua +++ b/FS25_ADSmartPickup/adCpResume.lua @@ -28,18 +28,28 @@ function ADCpResume.fromRecords(ids) return set end --- vehicles = {{id, aiActive, controlled}} i fast rækkefølge -> id'er der skal startes (nil uden gemt liste) +-- vehicles = {{id, aiActive, controlled, fieldWork}} i fast rækkefølge -> id'er der skal startes (nil uden gemt liste). +-- fieldWork = false: CP's HUD-job er ikke markarbejde (fx bunkersilo) — HUD-start ville starte det forkerte job +-- (in-game 29/9: "CP: No silo found"); nil = ukendt (ældre CP) -> startes som før. function ADCpResume.toStart(pending, vehicles) if pending == nil then return nil end local ids = {} for _, vehicle in ipairs(vehicles or {}) do - if pending[vehicle.id] and not vehicle.aiActive and not vehicle.controlled then table.insert(ids, vehicle.id) end + if pending[vehicle.id] and not vehicle.aiActive and not vehicle.controlled and vehicle.fieldWork ~= false then + table.insert(ids, vehicle.id) + end end return ids end -- ---- spil ---- +-- true/false fra CP's HUD; nil når CP-versionen ikke har funktionen +local function hudFieldWork(vehicle) + if vehicle.cpIsHudFieldWorkJobSelected == nil then return nil end + return vehicle:cpIsHudFieldWorkJobSelected() == true +end + local function vehicleState(adEnv, vehicle) local ad = vehicle.ad return { @@ -48,6 +58,7 @@ local function vehicleState(adEnv, vehicle) adActive = ad ~= nil and ad.stateModule ~= nil and ad.stateModule:isActive(), aiActive = vehicle.getIsAIActive ~= nil and vehicle:getIsAIActive() == true, controlled = vehicle.getIsControlled ~= nil and vehicle:getIsControlled() == true, + fieldWork = hudFieldWork(vehicle), } end diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 4ad0670..8799af1 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.60.12.0 + 1.60.13.0 <en>AD Smart Pickup</en> diff --git a/tests/test_adCpResume.lua b/tests/test_adCpResume.lua index e7768ab..099b143 100644 --- a/tests/test_adCpResume.lua +++ b/tests/test_adCpResume.lua @@ -22,5 +22,12 @@ local vehicles = {{id = "a"}, {id = "b", aiActive = true}, {id = "c", controlled local start = R.toStart(pending, vehicles) check("start: kun gemte, ikke allerede kørende/spiller i", table.concat(start, " "), "a d") check("start: ingen gemt liste -> nil (gammel regel bruges)", R.toStart(nil, vehicles), nil) + +-- kun når CP's HUD-job er markarbejde: moddets markopgaver starter CP med eget job, så HUD'en kan stå på fx +-- bunkersilo — HUD-start gav "CP: No silo found" efter genindlæsning (in-game 29/9) +local mixed = R.toStart({a = true, b = true, c = true}, { + {id = "a", fieldWork = true}, {id = "b", fieldWork = false}, {id = "c"}}) +check("start: kun markarbejds-job", table.concat(mixed, ","), "a,c") + print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL")) os.exit(failures == 0 and 0 or 1)