feat: autoload-bil løsner stropperne 25 m før aflæsningsmålet (ladet passerer triggeren før markøren) (v1.12.11.0)
This commit is contained in:
@@ -72,6 +72,7 @@ local adEnv = {
|
||||
AutoDriveMessageEvent = {sendMessageOrNotification = function(vehicle, kind, text, duration, ...) table.insert(notifications, {vehicle = vehicle, kind = kind, text = string.format(text, ...)}) end},
|
||||
ADMessagesManager = {messageTypes = {INFO = 1, WARN = 2, ERROR = 3}},
|
||||
LoadAtDestinationTask = {STATE_DRIVING = 2, update = function() end, finished = function(self) self.finishedCalls = (self.finishedCalls or 0) + 1 end},
|
||||
UnloadAtDestinationTask = {STATE_DRIVING = 2, update = function() end},
|
||||
}
|
||||
|
||||
local function newVehicle(name, x, z, capacity, ual)
|
||||
@@ -438,6 +439,35 @@ check("O20 kapacitet ukendt for pallebil", input20.capacity, nil)
|
||||
check("O20 har autoload", input20.hasAutoload, true)
|
||||
check("O20 turen planlægges alligevel", ADOutboundPlanner.plan(input20) ~= nil, true)
|
||||
|
||||
-- O21: autoload-bil på vej til aflæsning: stropperne løsnes UNSTRAP_BEFORE_M før målet (ladet passerer
|
||||
-- triggeren før markøren), kun én gang pr. tur, og aldrig for tipvogne
|
||||
local v21 = newVehicle("Dragon3", 0, 0, 1, true)
|
||||
v21.carriable = {}
|
||||
v21.trailers[1].setAllTensionBeltsActive = function(self, active) self.beltsActive = active end
|
||||
runs[v21] = outboundRun(22, {3}, {{fillType = "STRAW_BASKET", policy = "sell"}})
|
||||
sources[3].stored[BASKET] = 3
|
||||
quotes["selling station"][BASKET] = {percent = 95, price = 1}
|
||||
ADOutbound.choosePickup(adEnv, v21)
|
||||
check("O21 tur mod salgssted", v21.ad.stateModule.secondMarkerId, 10)
|
||||
local unloadTask21 = {vehicle = v21, destinationID = 10, trailers = v21.trailers}
|
||||
v21.rootNode = {x = 200 - 40, z = 0} -- 40 m fra markør 10 (x=200)
|
||||
ADOutbound.beforeUnloadUpdate(adEnv, unloadTask21, 16)
|
||||
check("O21 40 m: stropper stadig på", v21.trailers[1].beltsActive, nil)
|
||||
v21.rootNode = {x = 200 - 20, z = 0}
|
||||
ADOutbound.beforeUnloadUpdate(adEnv, unloadTask21, 16)
|
||||
check("O21 20 m: stropper løsnet", v21.trailers[1].beltsActive, false)
|
||||
v21.trailers[1].beltsActive = nil
|
||||
ADOutbound.beforeUnloadUpdate(adEnv, unloadTask21, 16)
|
||||
check("O21 kun én gang", v21.trailers[1].beltsActive, nil)
|
||||
local v21b = newVehicle("Tip", 0, 0, 20000)
|
||||
v21b.trailers[1].setAllTensionBeltsActive = function(self, active) self.beltsActive = active end
|
||||
runs[v21b] = outboundRun(23, {1}, {{fillType = "SUGAR", policy = "sell"}})
|
||||
quotes["selling station"][SUGAR].percent = 92
|
||||
ADOutbound.choosePickup(adEnv, v21b)
|
||||
v21b.rootNode = {x = 195, z = 0}
|
||||
ADOutbound.beforeUnloadUpdate(adEnv, {vehicle = v21b, destinationID = 10, trailers = v21b.trailers}, 16)
|
||||
check("O21 tipvogn: ingen stropper", v21b.trailers[1].beltsActive, nil)
|
||||
|
||||
-- O10: install wrapper: fejl i hook stopper ikke AD
|
||||
local calls = {}
|
||||
adEnv.LoadAtDestinationTask.update = function(self, dt) calls.update = (calls.update or 0) + 1 end
|
||||
@@ -448,6 +478,9 @@ adEnv.LoadAtDestinationTask.update(newTask(vX, 1), 16)
|
||||
check("O10 original update kaldt", calls.update, 1)
|
||||
adEnv.LoadAtDestinationTask.finished(newTask(vX, 1))
|
||||
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)
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user