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,11 +777,19 @@ function ADRunsController.findWrongCargoDump(adEnv, run, vehicle, targetId)
|
||||
return nil
|
||||
end
|
||||
local farmId = ADSmartPickup.getFarmId(vehicle)
|
||||
-- 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)
|
||||
return ADUnloadWait.hasRouteTo == nil or ADUnloadWait.hasRouteTo(adEnv, vehicle, markerId)
|
||||
end
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AD Smart Pickup — brugermanual
|
||||
|
||||
Version 1.18.6 · Farming Simulator 25 · tillæg til AutoDrive
|
||||
Version 1.18.7 · Farming Simulator 25 · tillæg til AutoDrive
|
||||
|
||||
*English version: [USER_MANUAL.md](USER_MANUAL.md)*
|
||||
|
||||
@@ -218,6 +218,12 @@ ensilage, hø, halm og mineralfoder af sig selv. Slukker du den, holder traktore
|
||||
som kortet selv har slukket på grund af manglende input, tæller som ønskede, for dem skal der netop
|
||||
fyldes på.
|
||||
|
||||
### Forkert last på vognen
|
||||
|
||||
Har en traktor en vare på vognen, som ikke er en af flowets varer, køres den først til en silo, der
|
||||
tager varen. Den afleveres ikke ved flowets mål, heller ikke når målet tager varen. Med **Vælg** tæller
|
||||
kun de afkrydsede varer. Med **Auto** tæller alt, målet tager.
|
||||
|
||||
### Bedste foder først
|
||||
|
||||
Foder i et stald-trug deler plads. Står bedre foder som **TMR** på listen, hentes lavere foder som
|
||||
|
||||
+7
-1
@@ -1,6 +1,6 @@
|
||||
# AD Smart Pickup — user manual
|
||||
|
||||
Version 1.18.6 · Farming Simulator 25 · add-on for AutoDrive
|
||||
Version 1.18.7 · Farming Simulator 25 · add-on for AutoDrive
|
||||
|
||||
*Dansk version: [BRUGERMANUAL.md](BRUGERMANUAL.md)*
|
||||
|
||||
@@ -220,6 +220,12 @@ silage, hay, straw and mineral feed by itself. Switch it off, and the tractor st
|
||||
the map switched off because an input ran out still count as wanted, because those are exactly the
|
||||
ones that need filling.
|
||||
|
||||
### Wrong cargo on the trailer
|
||||
|
||||
If a tractor has a good on the trailer that is not one of the flow's goods, it first takes it to a
|
||||
silo that accepts it. It is not unloaded at the flow's target, even when the target accepts the good.
|
||||
With **Select**, only the ticked goods count. With **Auto**, everything the target accepts counts.
|
||||
|
||||
### Best feed first
|
||||
|
||||
Feed in a barn trough shares space. If better feed such as **TMR** is on the list, lower feed such
|
||||
|
||||
@@ -440,6 +440,19 @@ sugarVehicle.loadType = TMR
|
||||
sugarVehicle.ad.stateModule.active = false
|
||||
ADRunsController.startRun(adEnv, sugar.id)
|
||||
check("C18 rigtig last -> målet", sugarVehicle.ad.stateModule.secondMarkerId, 77)
|
||||
-- C18b: målet TAGER varen, men den er ikke en af run'ets valgte varer (gødning i en ensilage-DOB)
|
||||
-- -> aflæs i en silo der tager den, ikke i målet
|
||||
unloadAt[77].accepts = {[TMR] = 360000, [STRAW] = 360000}
|
||||
ADRunsController.updateRun(sugar.id, {ingredientMode = "manual", ingredients = {"FORAGE"}})
|
||||
sugarVehicle.loadType = STRAW
|
||||
sugarVehicle.ad.stateModule.active = false
|
||||
ADRunsController.startRun(adEnv, sugar.id)
|
||||
check("C18b forkert vare for run'et -> silo, ikke målet", sugarVehicle.ad.stateModule.secondMarkerId, 44)
|
||||
-- auto-varer: alt målet tager hører til -> målet
|
||||
ADRunsController.updateRun(sugar.id, {ingredientMode = "auto", ingredients = {}})
|
||||
sugarVehicle.ad.stateModule.active = false
|
||||
ADRunsController.startRun(adEnv, sugar.id)
|
||||
check("C18b auto: målet tager varen -> målet", sugarVehicle.ad.stateModule.secondMarkerId, 77)
|
||||
ADUnloadWait = nil; ADLoadSwap = nil
|
||||
|
||||
-- C19: Wait-markører er aldrig mål — heller ikke når de står inden for 40 m af staldens trigger
|
||||
|
||||
Reference in New Issue
Block a user