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:
@@ -72,6 +72,22 @@ local function getKind(placeable)
|
||||
return nil
|
||||
end
|
||||
|
||||
local logHusbandryFoodOnce
|
||||
ADBuildings.findTriggerNodes = function(root, maxDepth) return ADSupplyPlanner.findTriggerNodes(root, maxDepth) end
|
||||
|
||||
-- Diagnose én gang pr. stald: hvilke felter foderdataene har, når ingen trigger-node blev fundet.
|
||||
local loggedFood = setmetatable({}, {__mode = "k"})
|
||||
logHusbandryFoodOnce = function(placeable)
|
||||
if loggedFood[placeable] then return end
|
||||
loggedFood[placeable] = true
|
||||
local keys = {}
|
||||
for key, value in pairs(placeable.spec_husbandryFood or {}) do table.insert(keys, tostring(key) .. ":" .. type(value)) end
|
||||
table.sort(keys)
|
||||
if Logging ~= nil and Logging.info ~= nil then
|
||||
Logging.info(ADBuildings.LOG_PREFIX .. "stald '%s' har ingen aflæsnings-trigger; spec_husbandryFood-felter: %s", getName(placeable, "?"), table.concat(keys, ", "))
|
||||
end
|
||||
end
|
||||
|
||||
-- Trigger-noder pr. bygning: læsse (loadTriggers.triggerNode, pallespawner, objektlager) og
|
||||
-- aflæsning (unloadTriggers exactFillRootNode/triggerNode/aiNode).
|
||||
-- loadGroups: én gruppe noder pr. læssepunkt (mælketank, gyllebeholder ...), så hvert punkt får sin
|
||||
@@ -104,11 +120,15 @@ local function collectNodes(placeable, loadStations, unloadStations)
|
||||
end
|
||||
if #nodes > 0 then table.insert(loadGroups, nodes) end
|
||||
end
|
||||
-- staldens foderkrybbe (hønsehus: kun krybben, ingen trigger i aflæsningsstationen)
|
||||
local food = placeable.spec_husbandryFood
|
||||
local trough = food ~= nil and food.feedingTrough or nil
|
||||
local troughNode = trough ~= nil and (trough.exactFillRootNode or trough.triggerNode) or nil
|
||||
if troughNode ~= nil then table.insert(unloadNodes, troughNode) end
|
||||
-- stald uden aflæsningsnoder i stationen (hønsehus: kun foder-triggeren) -> søg i staldens foderdata
|
||||
if #unloadNodes == 0 and placeable.getHusbandryFillLevel ~= nil then
|
||||
for _, node in ipairs(ADSupplyPlanner.findTriggerNodes(placeable.spec_husbandryFood)) do
|
||||
table.insert(unloadNodes, node)
|
||||
end
|
||||
if #unloadNodes == 0 then
|
||||
logHusbandryFoodOnce(placeable)
|
||||
end
|
||||
end
|
||||
-- stald med egne pallespawnere (hønsehus: æg, fårestald: uld) — én læssegruppe pr. spawner
|
||||
local husbandryPallets = placeable.spec_husbandryPallets
|
||||
local seenSpawners = {}
|
||||
|
||||
Reference in New Issue
Block a user