fix(kæde): kædens egne flows giver ikke dobbelt advarsel

Flows med run.chain (Kæde: X → Y) tæller som kæde-behov i neededOutputs,
så onlyChain forbliver sand, når kun kæden bruger varen, og Task 10 alene
melder det. Et almindeligt flow med samme vare advarer stadig.
This commit is contained in:
2026-09-30 15:14:42 +02:00
parent e9f1251471
commit 928299c8ee
+5 -3
View File
@@ -20,7 +20,7 @@ local function sortedKeys(map)
return keys
end
-- flows = {{name, kind, stopped, targetBuildingIds, ingredientMode, ingredients}}
-- flows = {{name, kind, stopped, targetBuildingIds, ingredientMode, ingredients, chain}} (chain = kædens rodnøgle for kædens flows)
-- barnFood = {[vare] = {staldnavn...}}, chainInputs = {[vare] = {kædenavn...}}
-- accepts = {[bygnings-id] = {[vare] = true}}: hvad auto-flowenes mål tager (adapteren slår op)
-- -> {[vare] = {users = {navn...}, onlyChain, strong}} (brugere i rækkefølgen flows, stalde, kæder; hver kun én gang).
@@ -42,11 +42,13 @@ function ADDependency.neededOutputs(flows, barnFood, chainInputs, accepts)
for _, flow in ipairs(flows or {}) do
if flow.kind ~= "outbound" and not flow.stopped then
local user = tostring(flow.name or "?")
-- kædens egne flows (flow.chain) er kæde-behov: Task 10 melder kæderne, så de gør ikke onlyChain falsk
local isChainFlow = flow.chain ~= nil and flow.chain ~= ""
if flow.ingredientMode == "manual" then
for _, name in ipairs(flow.ingredients or {}) do add(name, user, false, true) end
for _, name in ipairs(flow.ingredients or {}) do add(name, user, isChainFlow, true) end
else
for _, building in ipairs(flow.targetBuildingIds or {}) do
for _, name in ipairs(sortedKeys((accepts or {})[building])) do add(name, user, false) end
for _, name in ipairs(sortedKeys((accepts or {})[building])) do add(name, user, isChainFlow, isChainFlow) end
end
end
end