fix: silo til forkert last kræver kun vejnet fra traktoren (ikke silo→mål); advarsel forklarer hvorfor ingen silo (v1.11.8.0)
This commit is contained in:
@@ -75,6 +75,16 @@ end
|
||||
-- Findes der vejnet fra køretøjet til Wait-punktet OG fra Wait-punktet hjem til målet?
|
||||
-- Sendes AutoDrive mod et punkt uden rute, viser den "cannot reach" og slukker sig selv.
|
||||
-- getPathTo/pathFromTo er rene opslag uden bivirkninger.
|
||||
-- Kun "til punktet": ved aflæsning af (forkert) last i en silo er næste tur AD's egen
|
||||
-- rute fra siloen, så "fra siloen hjem" er ikke et krav.
|
||||
local function hasRouteTo(adEnv, vehicle, wayPointId)
|
||||
local graph = adEnv.ADGraphManager
|
||||
if graph.getPathTo == nil then
|
||||
return true
|
||||
end
|
||||
return pathReaches(graph:getPathTo(vehicle, wayPointId), wayPointId)
|
||||
end
|
||||
|
||||
local function hasRouteBothWays(adEnv, vehicle, waitWayPointId, homeWayPointId)
|
||||
local graph = adEnv.ADGraphManager
|
||||
if graph.getPathTo == nil or graph.pathFromTo == nil then
|
||||
@@ -185,7 +195,7 @@ local function updateWaiting(adEnv, task, wait, dt)
|
||||
if free == nil or not ADSupplyPlanner.canUnloadRest(free, rest, capacity, freeFraction) then
|
||||
if ADLoadSwap ~= nil then
|
||||
local isReachable = function(markerId)
|
||||
return hasRouteBothWays(adEnv, vehicle, markerId, wait.homeDestinationID)
|
||||
return hasRouteTo(adEnv, vehicle, markerId)
|
||||
end
|
||||
ADLoadSwap.tryFromWait(adEnv, task, wait, dt, redirect, release, isReachable)
|
||||
end
|
||||
@@ -222,6 +232,10 @@ function ADUnloadWait.hasRouteBothWays(adEnv, vehicle, toWayPointId, homeWayPoin
|
||||
return hasRouteBothWays(adEnv, vehicle, toWayPointId, homeWayPointId)
|
||||
end
|
||||
|
||||
function ADUnloadWait.hasRouteTo(adEnv, vehicle, wayPointId)
|
||||
return hasRouteTo(adEnv, vehicle, wayPointId)
|
||||
end
|
||||
|
||||
function ADUnloadWait.getRestLoad(adEnv, vehicle)
|
||||
return getRestLoad(adEnv, vehicle)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user