fix(flows): flow startet igen under tømning/hjemtur afbryder hjemturen og kører videre med vognen — før tømte den i op til 10 min ved forkert mål, satte vognen af og kørte i garage (v1.52.1.0)
This commit is contained in:
@@ -111,6 +111,8 @@ end
|
||||
|
||||
local waiting = setmetatable({}, {__mode = "k"}) -- traktor -> runId (venter på sin vogn)
|
||||
local fetching = setmetatable({}, {__mode = "k"}) -- traktor -> runId (henter sin vogn)
|
||||
local emptying = setmetatable({}, {__mode = "k"}) -- traktor -> {stage, since, fillType, runName}
|
||||
local homing = setmetatable({}, {__mode = "k"}) -- traktor -> true (flowets hjemtur: vogn af, traktor hjem)
|
||||
local missingCount = {} -- runId -> tjek i træk
|
||||
local seenBuildings = {} -- bygnings-id'er set i denne session
|
||||
local rememberTimer, buildingTimer = 0, 0
|
||||
@@ -190,6 +192,13 @@ local function guessFor(adEnv, run, vehicle, tractorId)
|
||||
return wagonId
|
||||
end
|
||||
|
||||
-- Flowet startes igen mens traktoren tømmer/kører hjem efter et stop: afbryd, så den kører videre med sin vogn.
|
||||
-- Puljens egen hjemtur (fra markarbejde) røres ikke — der sidder et andet redskab bagpå.
|
||||
-- s = {emptying, flowHoming, poolReturning} -> true = afbryd
|
||||
function ADFlowWagons.abortHomeTripOnStart(s)
|
||||
return s.emptying == true or s.flowHoming == true
|
||||
end
|
||||
|
||||
-- Lånt ud af puljen: markarbejde, marksilo-lån, på hjemtur eller Courseplay kører den.
|
||||
function ADFlowWagons.isPoolBusy(vehicle, tractorId)
|
||||
return (ADFieldJobs ~= nil and ADFieldJobs.state.assignments[tractorId] ~= nil)
|
||||
@@ -203,6 +212,15 @@ end
|
||||
function ADFlowWagons.beforeStart(adEnv, run, vehicle)
|
||||
local tractorId = ADRunsController.getVehicleId(vehicle)
|
||||
if fetching[vehicle] ~= nil then return true, {vehicle = vehicle, ok = true, reason = "fetchingWagon"} end
|
||||
if ADFlowWagons.abortHomeTripOnStart({emptying = emptying[vehicle] ~= nil, flowHoming = homing[vehicle] ~= nil}) then
|
||||
Logging.info(ADFlowWagons.LOG_PREFIX .. "flow '%s': '%s' startet igen — tømning/hjemtur afbrudt, kører videre med vognen",
|
||||
tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)))
|
||||
emptying[vehicle] = nil
|
||||
if homing[vehicle] ~= nil then
|
||||
homing[vehicle] = nil
|
||||
ADHitch.cancel(vehicle)
|
||||
end
|
||||
end
|
||||
local wagonId = (run.wagons or {})[tractorId]
|
||||
if wagonId == nil and #ADHitch.rearImplementsOf(vehicle) == 0 then
|
||||
wagonId = guessFor(adEnv, run, vehicle, tractorId)
|
||||
@@ -259,7 +277,6 @@ function ADFlowWagons.beforeStart(adEnv, run, vehicle)
|
||||
end
|
||||
|
||||
-- Stop/slet/bygning væk: vognen tømmes (flowets mål, ellers silo/egen fabrik), sættes på plads, traktoren hjem.
|
||||
local emptying = setmetatable({}, {__mode = "k"}) -- traktor -> {stage, since, fillType, runName}
|
||||
local nowMs = 0
|
||||
|
||||
local function cargoOf(adEnv, vehicle)
|
||||
@@ -280,8 +297,10 @@ end
|
||||
|
||||
local function goHome(adEnv, vehicle)
|
||||
emptying[vehicle] = nil
|
||||
local okHome, pooled = pcall(ADHitch.returnHome, adEnv, vehicle)
|
||||
homing[vehicle] = true
|
||||
local okHome, pooled = pcall(ADHitch.returnHome, adEnv, vehicle, function(tractor) homing[tractor] = nil end)
|
||||
if not (okHome and pooled) then
|
||||
homing[vehicle] = nil
|
||||
local park = ADFieldWork.parkMarkerId(adEnv, vehicle)
|
||||
if park ~= nil then pcall(ADFieldWork.startAd, adEnv, vehicle, adEnv.AutoDrive.MODE_DRIVETO, park, nil) end
|
||||
end
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.52.0.0</version>
|
||||
<version>1.52.1.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
Reference in New Issue
Block a user