fix(kæde): markvarer som hø og hakkelse kommer fra markerne

ADChainData leverer data.fieldGoods (vindue-varer, spillets konvertere, tørrede
varianter og kendte markvarer der findes som fill type). En markvare uden
producent/stald får kilden "fra marker" uden afgrødeplan og uden problem, så
fermenteringssiloernes hø/lucerne/kløver/hakkelse ikke meldes som køb.
This commit is contained in:
2026-09-30 15:25:47 +02:00
parent 928299c8ee
commit d2a4cf0d23
6 changed files with 96 additions and 7 deletions
+8 -1
View File
@@ -47,7 +47,9 @@ local function sortedNames(map)
return names
end
function ADChainModel.build(recipes, husbandry, crops)
-- fieldGoods = {[vare] = true}: varer der høstes/laves på marken uden at være en afgrødes hovedvare (hø, hakkelse,
-- halm …). Uden producent/stald er kilden "field" uden afgrøde: intet markbehov og intet problem.
function ADChainModel.build(recipes, husbandry, crops, fieldGoods)
local chain = {roots = {}, demand = {}, fieldDemand = {}, needRecipes = {}, problems = {}}
local producers, herds = indexProducers(recipes), indexHerds(husbandry)
-- Rødderne kører for sig selv med fuld fart: deres egne input kræves af deres eget træ. Som leverandør til en
@@ -136,6 +138,11 @@ function ADChainModel.build(recipes, husbandry, crops)
chain.fieldDemand[node.fruit] = (chain.fieldDemand[node.fruit] or 0) + rest
rest = 0
end
-- c2) markvare uden egen afgrøde (fx hø, hakkelse): kommer fra markerne, ingen afgrødeplan
if rest > 1e-9 and #node.producers == 0 and #node.herds == 0 and fieldGoods ~= nil and fieldGoods[name] then
node.source, node.fruit = "field", nil
rest = 0
end
-- d) ingen kilde (eller rest efter stald), eller exhausted producers
if rest > 1e-9 and makers ~= nil and #node.producers == 0 and #node.herds == 0 then
node.source = "production"