fix(reserve): staldens output (mælk/gylle) er ikke foderbehov — kun krybbe-varer/foderdefinition; Milk Salg holdt med 784k 'reserveret' (v1.17.2.0)
This commit is contained in:
@@ -587,6 +587,22 @@ end
|
||||
|
||||
-- Stald: foder/halm/vand-rate × timer minus beholdning, højst fri plads (spec-felter som
|
||||
-- Distribution Redux læser dem); automatisk vandforsyning = intet behov.
|
||||
-- Foder = varer i krybben ELLER i dyretypens foderdefinition (tom krybbe har ingen niveauer).
|
||||
-- Mælk/gylle er staldens output og understøttes kun som lager.
|
||||
local function isFoodFillType(placeable, fillType)
|
||||
local food = placeable.spec_husbandryFood
|
||||
if food == nil then return false end
|
||||
if food.fillLevels ~= nil and food.fillLevels[fillType] ~= nil then return true end
|
||||
local system = g_currentMission ~= nil and g_currentMission.animalFoodSystem or nil
|
||||
local animalFood = system ~= nil and system.getAnimalFood ~= nil and system:getAnimalFood(food.animalTypeIndex) or nil
|
||||
for _, group in pairs(animalFood ~= nil and animalFood.groups or {}) do
|
||||
for _, candidate in pairs(group.fillTypes or {}) do
|
||||
if candidate == fillType then return true end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local function getHusbandryReserve(placeable, fillType)
|
||||
if placeable.getHusbandryIsFillTypeSupported == nil or placeable.getHusbandryFillLevel == nil then
|
||||
return 0
|
||||
@@ -603,7 +619,8 @@ local function getHusbandryReserve(placeable, fillType)
|
||||
rate = water.litersPerHour or 0
|
||||
elseif name == "STRAW" and straw ~= nil then
|
||||
rate = straw.inputLitersPerHour or 0
|
||||
elseif food ~= nil then
|
||||
elseif food ~= nil and isFoodFillType(placeable, fillType) then
|
||||
-- kun varer i foderkrybben er foder; mælk/gylle er staldens OUTPUT (understøttet som lager)
|
||||
rate = food.litersPerHour or 0
|
||||
level = 0
|
||||
for _, value in pairs(food.fillLevels or {}) do level = level + (value or 0) end
|
||||
|
||||
Reference in New Issue
Block a user