fix(cp): genstart efter indlæsning kun når CP's HUD-job er markarbejde

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).
This commit is contained in:
2026-09-29 21:21:18 +02:00
parent d420d5026d
commit b33f7682b4
4 changed files with 23 additions and 3 deletions
+2
View File
@@ -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 — "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, - **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. 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 - **1.60.11** Udkørselsregler vises kun, når en vare bruger dem: salgsgrænserne ("Sælg fra", "Sælg altid
+13 -2
View File
@@ -28,18 +28,28 @@ function ADCpResume.fromRecords(ids)
return set return set
end 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) function ADCpResume.toStart(pending, vehicles)
if pending == nil then return nil end if pending == nil then return nil end
local ids = {} local ids = {}
for _, vehicle in ipairs(vehicles or {}) do 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 end
return ids return ids
end end
-- ---- spil ---- -- ---- 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 function vehicleState(adEnv, vehicle)
local ad = vehicle.ad local ad = vehicle.ad
return { return {
@@ -48,6 +58,7 @@ local function vehicleState(adEnv, vehicle)
adActive = ad ~= nil and ad.stateModule ~= nil and ad.stateModule:isActive(), adActive = ad ~= nil and ad.stateModule ~= nil and ad.stateModule:isActive(),
aiActive = vehicle.getIsAIActive ~= nil and vehicle:getIsAIActive() == true, aiActive = vehicle.getIsAIActive ~= nil and vehicle:getIsAIActive() == true,
controlled = vehicle.getIsControlled ~= nil and vehicle:getIsControlled() == true, controlled = vehicle.getIsControlled ~= nil and vehicle:getIsControlled() == true,
fieldWork = hudFieldWork(vehicle),
} }
end end
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="107"> <modDesc descVersion="107">
<author>masterdraco</author> <author>masterdraco</author>
<version>1.60.12.0</version> <version>1.60.13.0</version>
<title> <title>
<en>AD Smart Pickup</en> <en>AD Smart Pickup</en>
</title> </title>
+7
View File
@@ -22,5 +22,12 @@ local vehicles = {{id = "a"}, {id = "b", aiActive = true}, {id = "c", controlled
local start = R.toStart(pending, vehicles) local start = R.toStart(pending, vehicles)
check("start: kun gemte, ikke allerede kørende/spiller i", table.concat(start, " "), "a d") 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) 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")) print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1) os.exit(failures == 0 and 0 or 1)