diff --git a/FS25_ADSmartPickup/adFlowWagons.lua b/FS25_ADSmartPickup/adFlowWagons.lua index 3a54fb2..41683f2 100644 --- a/FS25_ADSmartPickup/adFlowWagons.lua +++ b/FS25_ADSmartPickup/adFlowWagons.lua @@ -631,6 +631,18 @@ end ADFlowWagons.AFTER_LOAD_MS = 120000 local sinceLoad, cleanedUp = 0, false +-- Efter indlæsning: traktorer uden for flows med et puljeredskab på (hentet før gemning, opgaven tabt) følges som +-- forældreløse — får de ingen opgave inden ORPHAN_MS, sættes redskabet tilbage (in-game 29/9: 3 læssevogne). +local function adoptOrphansAfterLoad(adEnv) + for _, vehicle in ipairs(ADRunsController.getFarmVehicles(adEnv)) do + local run = ADRunsController.getRunForVehicle(vehicle) + if (run == nil or run.stopped) and vehicle.spec_attacherJoints ~= nil and #ADHitch.poolParkIds(adEnv, vehicle) > 0 + and not ADFlowWagons.isEmptying(vehicle) and not homing[vehicle] then + orphans[vehicle] = orphans[vehicle] or 0 + end + end +end + local function cleanupAfterLoad(adEnv) for _, run in ipairs(runs()) do if run.stopped then @@ -669,6 +681,8 @@ function ADFlowWagons.tick(adEnv, dt) cleanedUp = true local ok, err = pcall(cleanupAfterLoad, adEnv) if not ok then Logging.warning(ADFlowWagons.LOG_PREFIX .. "oprydning efter indlæsning: %s", tostring(err)) end + local okAdopt, errAdopt = pcall(adoptOrphansAfterLoad, adEnv) + if not okAdopt then Logging.warning(ADFlowWagons.LOG_PREFIX .. "redskaber uden opgave efter indlæsning: %s", tostring(errAdopt)) end local okPrune, errPrune = pcall(ADRunsController.pruneMissingVehicles, adEnv) if not okPrune then Logging.warning(ADFlowWagons.LOG_PREFIX .. "oprydning af solgte traktorer: %s", tostring(errPrune)) end end diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 850e4ec..e216ffa 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.60.4.0 + 1.60.5.0 <en>AD Smart Pickup</en>