diff --git a/FS25_ADSmartPickup/adUnloadWait.lua b/FS25_ADSmartPickup/adUnloadWait.lua index 4b50467..ce5a923 100644 --- a/FS25_ADSmartPickup/adUnloadWait.lua +++ b/FS25_ADSmartPickup/adUnloadWait.lua @@ -255,6 +255,9 @@ end -- AD ser — vognens indhold, målets fri plads, AD's aflæsningstilstand og vognens dischargeState. ADUnloadWait.DEBUG_INTERVAL_MS = 15000 local debugTimers = setmetatable({}, {__mode = "k"}) +local debugStuck = setmetatable({}, {__mode = "k"}) -- vehicle -> {level, since}: læsset uændret siden +ADUnloadWait.STUCK_WITH_ROOM_MS = 30000 + local function debugAtTarget(adEnv, task, dt) local vehicle = task.vehicle local targetReached = vehicle.ad.drivePathModule:isTargetReached() @@ -268,8 +271,15 @@ local function debugAtTarget(adEnv, task, dt) return end local free, capacity = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType) - -- kun den tilstand vi vil se: målet fuldt/afvist, og traktoren venter ikke ved et Wait-punkt - if waits[vehicle] ~= nil or (free ~= nil and free >= ADUnloadWait.MIN_FREE_TO_UNLOAD) then + -- ved målet MED plads, men læsset falder ikke (in-game 29/9: EDK 650 ved TMR Unload/Biogas Drop) — også det + -- vil vi se. Ellers kun: målet fuldt/afvist, og traktoren venter ikke ved et Wait-punkt. + local stuck = debugStuck[vehicle] + if stuck == nil or rest < stuck.level - 1 then + stuck = {level = rest, since = g_time or 0} + debugStuck[vehicle] = stuck + end + local stuckWithRoom = targetReached and (g_time or 0) - stuck.since >= ADUnloadWait.STUCK_WITH_ROOM_MS + if waits[vehicle] ~= nil or (free ~= nil and free >= ADUnloadWait.MIN_FREE_TO_UNLOAD and not stuckWithRoom) then return end local trailerModule = vehicle.ad.trailerModule diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 66f9891..3acf30e 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.60.2.0 + 1.60.3.0 <en>AD Smart Pickup</en>