fix(forsyning): forkert last der ikke er en af run'ets valgte varer køres til en silo — også midt i turen — i stedet for at havne i målet (gødning i ensilage-DOB) (v1.18.7.0)
This commit is contained in:
@@ -777,9 +777,17 @@ function ADRunsController.findWrongCargoDump(adEnv, run, vehicle, targetId)
|
||||
return nil
|
||||
end
|
||||
local farmId = ADSmartPickup.getFarmId(vehicle)
|
||||
for _, entry in ipairs(getTargetStations(adEnv, run, farmId)) do
|
||||
if ADSmartPickup.getStationLevelAndCapacity(entry.station, fillType, farmId) ~= nil then
|
||||
return nil
|
||||
-- Lasten hører til run'et: valgte varer ("Vælg"), eller alt målet tager ("Auto"). Kun så afleveres
|
||||
-- den ved målet — ellers havnede fx gødning i en ensilage-DOB, fordi DOB'en også tager gødning.
|
||||
if run.ingredientMode == "manual" then
|
||||
for _, index in ipairs(ADRunsController.getRunIngredients(adEnv, run, vehicle)) do
|
||||
if index == fillType then return nil end
|
||||
end
|
||||
else
|
||||
for _, entry in ipairs(getTargetStations(adEnv, run, farmId)) do
|
||||
if ADSmartPickup.getStationLevelAndCapacity(entry.station, fillType, farmId) ~= nil then
|
||||
return nil
|
||||
end
|
||||
end
|
||||
end
|
||||
local isReachable = function(markerId)
|
||||
|
||||
@@ -921,6 +921,16 @@ local function installLoadWaitHook(adEnv)
|
||||
local cargoName = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(fillType) or tostring(fillType)
|
||||
local wantedName = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(pickup.fillType) or tostring(pickup.fillType)
|
||||
Logging.info(ADSmartPickup.LOG_PREFIX .. "'%s' har %.0f l %s på vognen og skulle hente %s — leverer først det den har", tostring(ADRuns.vehicleLabel(loadTask.vehicle)), liters, tostring(cargoName), tostring(wantedName))
|
||||
-- hører lasten ikke til run'et (fx gødning i et ensilage-run), køres den til en silo der tager den
|
||||
local run = ADRunsController ~= nil and ADRunsController.getRunForVehicle(loadTask.vehicle) or nil
|
||||
if run ~= nil and ADRunsController.findWrongCargoDump ~= nil and ADUnloadWait.setDumpTarget ~= nil then
|
||||
local stateModule = loadTask.vehicle.ad.stateModule
|
||||
local current = stateModule.getSecondMarker ~= nil and stateModule:getSecondMarker() or nil
|
||||
local ok, dump = pcall(ADRunsController.findWrongCargoDump, adEnv, run, loadTask.vehicle, current ~= nil and current.id or nil)
|
||||
if ok and dump ~= nil then
|
||||
ADUnloadWait.setDumpTarget(loadTask.vehicle, dump.marker.id)
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.18.6.0</version>
|
||||
<version>1.18.7.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
Reference in New Issue
Block a user