fix: autoload-køretøjer måles i paller, ikke liter — en tom pallebil er ikke 'ingen vogn' (v1.12.8.0)

This commit is contained in:
2026-09-23 11:49:33 +02:00
parent 058795d4c3
commit 196c2cd847
8 changed files with 34 additions and 5 deletions
+4
View File
@@ -102,6 +102,10 @@ local function getVehicleCapacity(adEnv, vehicle)
hasAutoload = true
end
end
-- UAL opgiver antal paller (læssede + 1), ikke liter: liter-kapaciteten er ukendt for en pallebil
if hasAutoload and (capacity == nil or capacity < 100) then
capacity = nil
end
return capacity, hasAutoload, trailers
end
+6 -3
View File
@@ -260,6 +260,8 @@ end
-- ---- validering ----
-- Liter-kapacitet for vognen; nil uden vogn. Universal Autoload opgiver ikke liter men ANTAL paller
-- (læssede + 1), så et autoload-køretøj får nil her og markeres via isAutoload i valideringen.
local function getLoadCapacity(adEnv, vehicle)
local trailers = adEnv.AutoDrive.getAllUnits(vehicle)
if trailers == nil then
@@ -402,7 +404,7 @@ local function validateOutboundVehicle(adEnv, run, vehicle, result)
result.reason = "noSource"
return result
end
if result.capacity == nil then
if result.capacity == nil and not result.isAutoload then
result.reason = "noTrailer"
return result
end
@@ -458,7 +460,7 @@ end
-- udkørsel desuden "noSource" | "noProducts" | "needsAutoload".
function ADRunsController.validateVehicle(adEnv, run, vehicle)
local carriable = ADRunsController.getCarriableFillTypes(adEnv, vehicle)
local result = {ok = false, carriable = carriable, capacity = getLoadCapacity(adEnv, vehicle)}
local result = {ok = false, carriable = carriable, capacity = getLoadCapacity(adEnv, vehicle), isAutoload = hasAutoload(adEnv, vehicle)}
if run.kind == "outbound" then
return validateOutboundVehicle(adEnv, run, vehicle, result)
end
@@ -472,7 +474,8 @@ function ADRunsController.validateVehicle(adEnv, run, vehicle)
result.reason = "noTarget"
return result
end
if result.capacity == nil then
-- en pallebil har ingen liter-kapacitet, men er ikke "uden vogn" — den falder på cannotCarry nedenfor
if result.capacity == nil and not result.isAutoload then
result.reason = "noTrailer"
return result
end
+3 -1
View File
@@ -476,7 +476,9 @@ function SmartPickupFrame:describeVehicle(adEnv, run, vehicle, isInRun)
local label = ADRunsController.getVehicleLabel(adEnv, vehicle)
local validation = ADRunsController.validateVehicle(adEnv, run, vehicle)
local parts = {label}
if validation.capacity ~= nil then
if validation.isAutoload and validation.capacity == nil then
table.insert(parts, self.i18n:getText("spu_capacity_pallets"))
elseif validation.capacity ~= nil then
table.insert(parts, string.format(self.i18n:getText("spu_capacity"), g_i18n:formatNumber(validation.capacity, 0)))
local carriable = self:describeCarriable(adEnv, run, vehicle, validation.carriable)
if carriable ~= nil then
+1
View File
@@ -42,6 +42,7 @@
<text name="spu_renameTitle" text="Navn på run"/>
<text name="spu_deleteConfirm" text="Slet run '%s'? Dets kørende traktorer stoppes. Kan ikke fortrydes."/>
<text name="spu_capacity" text="%s l"/>
<text name="spu_capacity_pallets" text="autoload (paller)"/>
<text name="spu_tab_overview" text="Overblik"/>
<text name="spu_tab_runs" text="Forsyning"/>
<text name="spu_targets" text="Mål (vælg én eller flere — den der mangler mest, får turen)"/>
+1
View File
@@ -42,6 +42,7 @@
<text name="spu_renameTitle" text="Run name"/>
<text name="spu_deleteConfirm" text="Delete run '%s'? Its running tractors will be stopped. This cannot be undone."/>
<text name="spu_capacity" text="%s l"/>
<text name="spu_capacity_pallets" text="autoload (pallets)"/>
<text name="spu_tab_overview" text="Overview"/>
<text name="spu_tab_runs" text="Supply"/>
<text name="spu_targets" text="Targets (pick one or more — the neediest gets the trip)"/>
+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.7.0</version>
<version>1.12.8.0</version>
<title>
<en>AD Smart Pickup</en>
</title>