fix: rute-tjek begge veje før Wait-omdirigering; hjem ved halv-tomt mål (v1.7.2.0)
In-game 2026-09-22 21:37: Fastrac omdirigeret til 'Cow Wait' uden vejnet dertil -> AutoDrive 'cannot reach' + StopAndDisableADTask (AD slukket i stalden). Nu: ADGraphManager:getPathTo + pathFromTo (rene opslag) skal ende i hhv. Wait-punkt og mål, ellers næste punkt; intet nåeligt = som i dag + advarsel. 700.000 l-vogn i 300.000 l-stald kunne aldrig opfylde 'hele resten passer': ADSupplyPlanner.canUnloadRest = fri >= min(rest, 50 % af kapacitet).
This commit is contained in:
@@ -159,6 +159,18 @@ check("reserveret springes over", ADSupplyPlanner.pickNearestFreeWaitPoint(waitP
|
||||
check("egen reservation tæller som ledig", ADSupplyPlanner.pickNearestFreeWaitPoint(waitPoints, {[1] = V1}, 10, 0, V1).marker.id, 1)
|
||||
check("alle optaget -> nil", ADSupplyPlanner.pickNearestFreeWaitPoint(waitPoints, {[1] = V2, [2] = V2, [3] = V2}, 10, 0, V1), nil)
|
||||
check("ingen punkter -> nil", ADSupplyPlanner.pickNearestFreeWaitPoint({}, {}, 0, 0, V1), nil)
|
||||
-- nåelighed: et punkt AD ikke kan finde vej til/fra springes over (ellers slukker AD sig selv)
|
||||
local unreachableA = function(candidate) return candidate.marker.id ~= 1 end
|
||||
check("unåeligt nærmeste springes over", ADSupplyPlanner.pickNearestFreeWaitPoint(waitPoints, {}, 10, 0, V1, unreachableA).marker.id, 2)
|
||||
check("intet nåeligt -> nil", ADSupplyPlanner.pickNearestFreeWaitPoint(waitPoints, {}, 10, 0, V1, function() return false end), nil)
|
||||
|
||||
-- Hjem fra Wait: fri plads >= min(rest, halvdelen af målets kapacitet)
|
||||
-- (en 700.000 l-vogn kan aldrig tømme HELE resten i en 300.000 l-stald)
|
||||
check("hele resten passer -> hjem", ADSupplyPlanner.canUnloadRest(35000, 35000, 300000), true)
|
||||
check("resten passer ikke endnu -> vent", ADSupplyPlanner.canUnloadRest(5000, 20000, 50000), false)
|
||||
check("kæmpe rest: halv stald fri -> hjem", ADSupplyPlanner.canUnloadRest(150000, 700000, 300000), true)
|
||||
check("kæmpe rest: under halv stald fri -> vent", ADSupplyPlanner.canUnloadRest(100000, 700000, 300000), false)
|
||||
check("ukendt kapacitet -> kun hele resten tæller", ADSupplyPlanner.canUnloadRest(100000, 700000, nil), false)
|
||||
|
||||
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