fix: stropper spændes efter pålæsning på autoload-bil (paller tabt på vejen) (v1.12.18.0)

This commit is contained in:
2026-09-23 16:40:14 +02:00
parent b44c19e6ba
commit cfb35fee89
3 changed files with 49 additions and 2 deletions
+29 -1
View File
@@ -657,6 +657,31 @@ function ADOutbound.beforeUnloadUpdate(adEnv, task, dt)
return false
end
-- Efter pålæsning: autoload-bil med tur får stropperne spændt, så lasten ikke tabes på vejen
-- (AutoDrive/UAL sætter dem ikke selv på igen efter vores løsning før forrige aflæsning).
function ADOutbound.strapAfterLoading(adEnv, task)
local vehicle = task.vehicle
local state = trips[vehicle]
if state == nil then
return
end
local _, hasAutoload = getVehicleCapacity(adEnv, vehicle)
if not hasAutoload then
return
end
local strapped = 0
for _, unit in ipairs(task.trailers or {}) do
if unit.setAllTensionBeltsActive ~= nil then
pcall(unit.setAllTensionBeltsActive, unit, true, false)
strapped = strapped + 1
end
end
state.unstrapped = false
if strapped > 0 then
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': stropper spændt efter pålæsning", tostring(vehicle:getName()))
end
end
-- true = opsamlingsrunden fortsætter til næste kilde (original finished springes over).
function ADOutbound.beforeLoadFinished(adEnv, task)
local vehicle = task.vehicle
@@ -745,7 +770,10 @@ function ADOutbound.install(adEnv)
elseif continueRound then
return
end
return originalFinished(self)
local result = originalFinished(self)
-- autoload-bil kører nu fra kilden: stropperne SKAL på (de løsnes 25 m før aflæsningen)
pcall(ADOutbound.strapAfterLoading, adEnv, self)
return result
end
end
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="107">
<author>masterdraco</author>
<version>1.12.17.0</version>
<version>1.12.18.0</version>
<title>
<en>AD Smart Pickup</en>
</title>
+19
View File
@@ -523,6 +523,25 @@ check("O10 original finished kaldt", calls.finished, 1)
adEnv.UnloadAtDestinationTask.update = function(self, dt) calls.unload = (calls.unload or 0) + 1 end
ADOutbound.install(adEnv)
check("O10 unload-wrap ikke installeret dobbelt", adEnv.UnloadAtDestinationTask.update ~= nil, true)
-- O24: stropperne spændes igen når pålæsningen er færdig (de blev løsnet 25 m før forrige salg;
-- in-game 23/9: Dragon tabte paller på vejen to gange)
local v24 = newVehicle("Dragon5", 100, 0, 1, true)
v24.carriable = {}
v24.trailers[1].setAllTensionBeltsActive = function(self, active) self.beltsActive = active end
runs[v24] = outboundRun(27, {3}, {{fillType = "STRAW_BASKET", policy = "sell"}})
sources[3].stored[BASKET] = 3
quotes["selling station"][BASKET] = {percent = 95, price = 1}
ADOutbound.choosePickup(adEnv, v24)
local task24 = newTask(v24, 3)
v24.trailers.level = 3
adEnv.LoadAtDestinationTask.finished(task24)
check("O24 stropper spændt efter pålæsning", v24.trailers[1].beltsActive, true)
check("O24 tur planlagt", ADOutbound.getTripFor(v24) ~= nil, true)
check("O24 original finished kaldt", calls.finished, 2)
local v24b = newVehicle("Tip4", 0, 0, 20000)
v24b.trailers[1].setAllTensionBeltsActive = function(self, active) self.beltsActive = active end
adEnv.LoadAtDestinationTask.finished(newTask(v24b, 1))
check("O24 tipvogn uden tur: rører ikke stropper", v24b.trailers[1].beltsActive, nil)
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)