fix(forsyning): mindst fyldte kilde først kun blandt kilder med >= 25 % af et læs (ellers fyldeste) — foder-traktorer hentede 2-10k l i en gæringssilo der fyldes løbende; knappen viser Start for et flow der aldrig kom i gang, selv med vogn på (v1.57.0.0)

This commit is contained in:
2026-09-29 15:20:48 +02:00
parent 2454dd17e7
commit 793f792f8b
6 changed files with 53 additions and 13 deletions
+19 -2
View File
@@ -29,15 +29,32 @@ function ADSupplyPlanner.prefersFullestSource(fillTypeNames)
return true
end
-- "Rigelig" kilde: kan levere mindst MIN_LOAD_SHARE af et læs (mindst MIN_AMPLE_LITERS).
ADSupplyPlanner.MIN_LOAD_SHARE = 0.25
ADSupplyPlanner.MIN_AMPLE_LITERS = 5000
function ADSupplyPlanner.ampleLevel(loadCapacity)
return math.max(ADSupplyPlanner.MIN_AMPLE_LITERS, (loadCapacity or 0) * ADSupplyPlanner.MIN_LOAD_SHARE)
end
-- Er en kilde med dette niveau bedre end den hidtil bedste (nil = ingen endnu)?
function ADSupplyPlanner.isBetterSource(level, bestLevel, prefersFullest)
-- Lagervarer: mindst fyldte først, men kun blandt rigelige kilder — en næsten tom tank der fyldes løbende
-- (gæringssilo) ville ellers altid vinde og give et par tusind liter pr. tur (in-game 29/9). Ingen rigelige:
-- den fyldeste. ample = nil: gammel regel.
function ADSupplyPlanner.isBetterSource(level, bestLevel, prefersFullest, ample)
if bestLevel == nil then
return true
end
if prefersFullest then
return level > bestLevel
end
return level < bestLevel
if ample == nil then
return level < bestLevel
end
local isAmple, bestIsAmple = level >= ample, bestLevel >= ample
if isAmple ~= bestIsAmple then return isAmple end
if isAmple then return level < bestLevel end
return level > bestLevel
end
function ADSupplyPlanner.copyList(list)