feat: foderprioritering — trug som én trang, spillets fodervægt (TMR 1,0 > hø/ensilage 0,8 > græs 0,4) afgør rækkefølgen i truget; fanen viser samme rangering (v1.10.3.0)
This commit is contained in:
@@ -168,10 +168,13 @@ function ADSupplyPlanner.canUnloadRest(freeSpace, rest, capacity, freeFraction)
|
||||
return freeSpace >= needed
|
||||
end
|
||||
|
||||
-- needs: {{fillType, level, capacity[, litersPerMinute]}, ...}. Returnerer NY liste,
|
||||
-- mest trængende først; ingredienser uden plads i målet er sorteret fra.
|
||||
-- needs: {{fillType, level, capacity[, litersPerMinute][, scoreOverride][, priority]}, ...}.
|
||||
-- Returnerer NY liste, mest trængende først; ingredienser uden plads i målet er sorteret fra.
|
||||
-- loadCapacity (valgfri): vognens kapacitet — varer hvor et FULDT læs kan komme af
|
||||
-- går forud (så vognen ikke ender med rest-læs); passer intet, gælder ren trang.
|
||||
-- scoreOverride: varer der deler ét lager (staldens fodertrug) får trugets fælles score,
|
||||
-- så truget konkurrerer som ÉN trang; priority (fx spillets fodervægt: TMR 1,0 > hø 0,8 >
|
||||
-- græs 0,4) afgør så rækkefølgen inden for lageret.
|
||||
function ADSupplyPlanner.rankNeeds(needs, loadCapacity)
|
||||
local ranked = {}
|
||||
for _, need in ipairs(needs) do
|
||||
@@ -186,7 +189,8 @@ function ADSupplyPlanner.rankNeeds(needs, loadCapacity)
|
||||
litersPerMinute = need.litersPerMinute,
|
||||
minutesToEmpty = minutesToEmpty,
|
||||
fits = ADSupplyPlanner.fullLoadFits(freeSpace, loadCapacity),
|
||||
score = ADSupplyPlanner.scoreNeed(need.level, need.capacity, freeSpace, minutesToEmpty),
|
||||
score = need.scoreOverride or ADSupplyPlanner.scoreNeed(need.level, need.capacity, freeSpace, minutesToEmpty),
|
||||
priority = need.priority or 0,
|
||||
})
|
||||
end
|
||||
end
|
||||
@@ -197,6 +201,9 @@ function ADSupplyPlanner.rankNeeds(needs, loadCapacity)
|
||||
if a.score ~= b.score then
|
||||
return a.score > b.score
|
||||
end
|
||||
if a.priority ~= b.priority then
|
||||
return a.priority > b.priority
|
||||
end
|
||||
return a.fillType < b.fillType
|
||||
end)
|
||||
return ranked
|
||||
|
||||
Reference in New Issue
Block a user