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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user