fix(flows): Start alle ophæver pausen også for flows hvis traktorer allerede kører
Flows på pause (Stop alt) med traktorer der kørte videre på en gemt AD-tur blev talt som 'kørte allerede' og forblev stoppede; efter at have hentet vognen så flowet sig selv som stoppet og kørte vognen hjem igen (v1.60.12.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.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
|
- **1.60.11** Udkørselsregler vises kun, når en vare bruger dem: salgsgrænserne ("Sælg fra", "Sælg altid
|
||||||
over") kun ved Salg / Salg, ellers lager, og "Kør til lager over" kun ved Lager / Salg, ellers lager.
|
over") kun ved Salg / Salg, ellers lager, og "Kør til lager over" kun ved Lager / Salg, ellers lager.
|
||||||
Gælder Regler-trinnet, resuméet og status (et rent lagerflow viser fx kun "lager > 80 %").
|
Gælder Regler-trinnet, resuméet og status (et rent lagerflow viser fx kun "lager > 80 %").
|
||||||
|
|||||||
@@ -43,6 +43,15 @@ local function clampRange(value, default, min, max)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Flow-vogne: {[traktorId] = vognId} (maskinpulje — flowet henter sin egen vogn).
|
-- Flow-vogne: {[traktorId] = vognId} (maskinpulje — flowet henter sin egen vogn).
|
||||||
|
-- Start alle pr. flow: isRunning (traktorer kører AD), stopped (pause fra Stop alt / Stop).
|
||||||
|
-- -> "queue" (start traktorerne), "resume" (kører allerede: kun pausen ophæves), "skip".
|
||||||
|
-- In-game 29/9: flows på pause hvis traktorer kørte videre på en gemt AD-tur blev talt som 'kørte allerede',
|
||||||
|
-- forblev stoppede, og traktoren kørte vognen hjem lige efter at have hentet den.
|
||||||
|
function ADRuns.startAllAction(isRunning, stopped)
|
||||||
|
if not isRunning then return "queue" end
|
||||||
|
return stopped and "resume" or "skip"
|
||||||
|
end
|
||||||
|
|
||||||
function ADRuns.copyWagons(wagons)
|
function ADRuns.copyWagons(wagons)
|
||||||
local copy = {}
|
local copy = {}
|
||||||
for tractorId, wagonId in pairs(wagons or {}) do copy[tractorId] = wagonId end
|
for tractorId, wagonId in pairs(wagons or {}) do copy[tractorId] = wagonId end
|
||||||
|
|||||||
@@ -1137,8 +1137,10 @@ function ADRunsController.queueStartAll(adEnv)
|
|||||||
local queue = {}
|
local queue = {}
|
||||||
for _, run in ipairs(ADRunsController.store.runs) do
|
for _, run in ipairs(ADRunsController.store.runs) do
|
||||||
if #run.vehicleIds > 0 then
|
if #run.vehicleIds > 0 then
|
||||||
if ADRunsController.getRunStatus(adEnv, run).isRunning then
|
local action = ADRuns.startAllAction(ADRunsController.getRunStatus(adEnv, run).isRunning, run.stopped == true)
|
||||||
|
if action ~= "queue" then
|
||||||
summary.alreadyRunning = summary.alreadyRunning + 1
|
summary.alreadyRunning = summary.alreadyRunning + 1
|
||||||
|
if action == "resume" then run.stopped = false end
|
||||||
else
|
else
|
||||||
run.stopped = false
|
run.stopped = false
|
||||||
for _, vehicleId in ipairs(run.vehicleIds) do
|
for _, vehicleId in ipairs(run.vehicleIds) do
|
||||||
@@ -1310,8 +1312,10 @@ function ADRunsController.startAllRuns(adEnv)
|
|||||||
local summary = {runsStarted = 0, alreadyRunning = 0, vehiclesStarted = 0, results = {}}
|
local summary = {runsStarted = 0, alreadyRunning = 0, vehiclesStarted = 0, results = {}}
|
||||||
for _, run in ipairs(ADRunsController.store.runs) do
|
for _, run in ipairs(ADRunsController.store.runs) do
|
||||||
if #run.vehicleIds > 0 then
|
if #run.vehicleIds > 0 then
|
||||||
if ADRunsController.getRunStatus(adEnv, run).isRunning then
|
local action = ADRuns.startAllAction(ADRunsController.getRunStatus(adEnv, run).isRunning, run.stopped == true)
|
||||||
|
if action ~= "queue" then
|
||||||
summary.alreadyRunning = summary.alreadyRunning + 1
|
summary.alreadyRunning = summary.alreadyRunning + 1
|
||||||
|
if action == "resume" then run.stopped = false end
|
||||||
else
|
else
|
||||||
local startedHere = 0
|
local startedHere = 0
|
||||||
for _, result in ipairs(ADRunsController.startRun(adEnv, run.id)) do
|
for _, result in ipairs(ADRunsController.startRun(adEnv, run.id)) do
|
||||||
|
|||||||
@@ -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.11.0</version>
|
<version>1.60.12.0</version>
|
||||||
<title>
|
<title>
|
||||||
<en>AD Smart Pickup</en>
|
<en>AD Smart Pickup</en>
|
||||||
</title>
|
</title>
|
||||||
|
|||||||
@@ -373,5 +373,13 @@ do
|
|||||||
check("besked: TMR har traktorer tilbage", notes[1].runName .. "/" .. notes[1].left .. "/" .. tostring(notes[1].critical), "TMR/1/false")
|
check("besked: TMR har traktorer tilbage", notes[1].runName .. "/" .. notes[1].left .. "/" .. tostring(notes[1].critical), "TMR/1/false")
|
||||||
check("besked: Solo står tom -> rød", notes[2].runName .. "/" .. notes[2].left .. "/" .. tostring(notes[2].critical), "Solo/0/true")
|
check("besked: Solo står tom -> rød", notes[2].runName .. "/" .. notes[2].left .. "/" .. tostring(notes[2].critical), "Solo/0/true")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Start alle: et flow på pause (Stop alt) skal have pausen ophævet, også når dets traktorer allerede kører AD
|
||||||
|
-- (in-game 29/9: 5 flows blev talt som 'kørte allerede', forblev stoppede, og traktorerne kørte vognen hjem igen)
|
||||||
|
check("start alle: kører ikke -> i kø", ADRuns.startAllAction(false, true), "queue")
|
||||||
|
check("start alle: kører ikke, ikke stoppet -> i kø", ADRuns.startAllAction(false, false), "queue")
|
||||||
|
check("start alle: kører men stoppet -> ophæv pause", ADRuns.startAllAction(true, true), "resume")
|
||||||
|
check("start alle: kører og ikke stoppet -> intet", ADRuns.startAllAction(true, false), "skip")
|
||||||
|
|
||||||
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