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 — "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
|
||||||
|
|||||||
@@ -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,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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user