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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.60.12.0</version>
|
||||
<version>1.60.13.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user