feat(udkørsel): 'Lager til' — tvunget aflæsningssted pr. flow (siloer/egne fabrikker; første med plads og vej), XML #storeBuildings (v1.18.0.0)
This commit is contained in:
@@ -139,6 +139,30 @@ function ADLoadSwap.findDumpMarker(adEnv, vehicle, fillType, rest, homeWayPointI
|
||||
return nil, string.format("%d silo(er) tager varen, men AutoDrive finder ingen rute fra traktoren til dem", withSpace)
|
||||
end
|
||||
|
||||
-- Tvunget lagermål (flowets "Lager til"): kun de valgte aflæsningsmarkører, i rækkefølge. Første der
|
||||
-- tager varen, har plads til læsset og kan nås, vinder. Returnerer marker — eller nil + forklaring.
|
||||
function ADLoadSwap.findForcedDumpMarker(adEnv, vehicle, fillType, liters, markerIds, isReachable)
|
||||
local farmId = ADSmartPickup.getFarmId(vehicle)
|
||||
local reasons = {}
|
||||
for _, wayPointId in ipairs(markerIds or {}) do
|
||||
local marker = adEnv.ADGraphManager:getMapMarkerByWayPointId(wayPointId)
|
||||
local station = marker ~= nil and ADSmartPickup.getUnloadStationAtWayPointId(adEnv, wayPointId, farmId) or nil
|
||||
local name = marker ~= nil and tostring(marker.name) or tostring(wayPointId)
|
||||
if station == nil then
|
||||
table.insert(reasons, name .. ": ingen aflæsning ved markøren")
|
||||
elseif station.getIsFillTypeSupported ~= nil and not station:getIsFillTypeSupported(fillType) then
|
||||
table.insert(reasons, name .. ": tager ikke varen")
|
||||
elseif not acceptsRest(station, fillType, liters, farmId) then
|
||||
table.insert(reasons, name .. ": fuld")
|
||||
elseif not isReachable(wayPointId) then
|
||||
table.insert(reasons, name .. ": ingen vej")
|
||||
else
|
||||
return marker
|
||||
end
|
||||
end
|
||||
return nil, "valgt lager: " .. (#reasons > 0 and table.concat(reasons, "; ") or "ingen markør")
|
||||
end
|
||||
|
||||
-- Kaldes fra Wait-logikken hvert tick; redirect(task, id) og release(vehicle) er dens egne.
|
||||
-- true = traktoren er sendt til en silo (Wait-punktet er frigivet).
|
||||
function ADLoadSwap.tryFromWait(adEnv, task, wait, dt, redirect, release, isReachable)
|
||||
|
||||
Reference in New Issue
Block a user