fix: en fabriks inputs stjæles aldrig som kilde; stalde læses via getHusbandry* (v1.6.1.0)

In-game 2026-09-22: fire Fastrac'er med halm+TMR til to kostalde kørte med
'Rotér mål: kun aflæsning' og fast pålæsning ved 'TMR Load' -> AutoDrive læssede
halm (fabrikkens input) dér uden at modden var i spil. Med modden i spil ville
'mindst fyldte først' have valgt samme lager.

- ADSupplyPlanner.isProductionInput: vare der er input (og ikke output) i en
  fabriks produktioner udelukkes som kilde i findBestSource (mappe + behov).
- Stald som mål: niveau/kapacitet/understøttelse fra placeable:getHusbandry*
  (stationen selv siger nej til halm) -> halm rangeres og hentes.
- README: to stalde = kun pålæsnings-rotation (AD vælger pickup FØR deliver roteres).
This commit is contained in:
2026-09-22 20:45:43 +02:00
parent 795c03663c
commit 2ff0b641b0
6 changed files with 156 additions and 11 deletions
+15
View File
@@ -76,6 +76,21 @@ function ADSupplyPlanner.collectProductionDemand(productions, isWanted, canCarry
return demand
end
-- Er varen et INPUT til fabrikken (og ikke også et output)? Så må den aldrig
-- hentes derfra — det ville tømme fabrikken for det, den skal bruge.
function ADSupplyPlanner.isProductionInput(productions, fillType)
local isInput, isOutput = false, false
for _, production in ipairs(productions) do
for _, input in ipairs(production.inputs or {}) do
if input.type == fillType then isInput = true end
end
for _, output in ipairs(production.outputs or {}) do
if output.type == fillType then isOutput = true end
end
end
return isInput and not isOutput
end
-- Minutter før målets lager af varen er tomt ved nuværende forbrug; nil uden forbrug.
function ADSupplyPlanner.minutesToEmpty(level, litersPerMinute)
if litersPerMinute == nil or litersPerMinute <= 0 then