fix(flows): tømning ved stop afleverer kun ved flowets egne mål — AD's 2. markør kunne være forældet (æg-markør) eller et Wait-punkt (v1.53.1.0)
This commit is contained in:
@@ -89,6 +89,16 @@ function ADFlowWagons.missingBuildings(run, exists, seen)
|
||||
return missing
|
||||
end
|
||||
|
||||
-- Hvor læsset afleveres ved stop: AD's 2. markør kun hvis den er et af flowets mål — den kan være forældet
|
||||
-- (gammel AD-tilstand) eller et Wait-punkt, Wait-logikken har skiftet til. Ellers flowets første mål; nil = silo.
|
||||
function ADFlowWagons.emptyTarget(secondMarkerId, runTargetIds)
|
||||
local targets = runTargetIds or {}
|
||||
for _, id in ipairs(targets) do
|
||||
if id == secondMarkerId then return id end
|
||||
end
|
||||
return targets[1]
|
||||
end
|
||||
|
||||
-- Tøm vognen før den parkeres (flowet stoppet): flowets mål -> silo/egen fabrik -> hjem.
|
||||
-- stage: "start" | "target" | "dump"; s = {cargo, hasTarget, adActive, elapsedMs}
|
||||
-- -> "home" | "target" | "dump" | "wait" | "giveUp"
|
||||
@@ -337,7 +347,10 @@ function ADFlowWagons.homeVehicle(adEnv, vehicle, runName)
|
||||
ADHitch.cancel(vehicle)
|
||||
end
|
||||
local module = vehicle.ad ~= nil and vehicle.ad.stateModule or nil
|
||||
local target = module ~= nil and module.getSecondMarker ~= nil and module:getSecondMarker() or nil
|
||||
local second = module ~= nil and module.getSecondMarker ~= nil and module:getSecondMarker() or nil
|
||||
local run = ADRunsController.getRunForVehicle(vehicle)
|
||||
local targetId = ADFlowWagons.emptyTarget(second ~= nil and second.id or nil, run ~= nil and run.targetWayPointIds or nil)
|
||||
local target = targetId ~= nil and adEnv.ADGraphManager:getMapMarkerByWayPointId(targetId) or nil
|
||||
local cargo, fillType = cargoOf(adEnv, vehicle)
|
||||
local action = ADFlowWagons.emptyStep("start", {cargo = cargo, hasTarget = target ~= nil})
|
||||
if action == "home" then return goHome(adEnv, vehicle) end
|
||||
|
||||
Reference in New Issue
Block a user