fix(stald): foder-trigger søges i spec_husbandryFood (feedingTrough findes ikke i FS25) når stationen er uden noder — hønsehus; diagnose-log af feltnavne (v1.19.4.0)

This commit is contained in:
2026-09-24 19:47:54 +02:00
parent b86f420a41
commit ff71fb4f43
8 changed files with 78 additions and 19 deletions
+27
View File
@@ -296,3 +296,30 @@ function ADSupplyPlanner.resolveIngredients(state, selected)
end
return nil
end
-- Trigger-noder (exactFillRootNode/triggerNode) i indlejrede tabeller, fx en stalds foderdata hvor feltstien
-- varierer mellem FS-versioner og mods (hønsehuset har kun foder-triggeren, ikke i aflæsningsstationen).
-- Højst maxDepth niveauer (standard 3); løkker og placeable-referencer følges ikke.
local SKIP_KEYS = {owningPlaceable = true, placeable = true, owner = true, parent = true, vehicle = true, target = true, mission = true}
function ADSupplyPlanner.findTriggerNodes(root, maxDepth)
local nodes, seen = {}, {}
local function visit(value, depth)
if type(value) ~= "table" or seen[value] or depth > (maxDepth or 3) then
return
end
seen[value] = true
for _, field in ipairs({"exactFillRootNode", "triggerNode"}) do
local node = rawget(value, field)
if node ~= nil and type(node) ~= "boolean" then table.insert(nodes, node) end
end
for key, child in pairs(value) do
if type(child) == "table" and not SKIP_KEYS[key] then
visit(child, depth + 1)
end
end
end
visit(root, 0)
return nodes
end