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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.17.1.0</version>
|
||||
<version>1.17.2.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AD Smart Pickup — brugermanual
|
||||
|
||||
Version 1.17.1 · Farming Simulator 25 · tillæg til AutoDrive
|
||||
Version 1.17.2 · Farming Simulator 25 · tillæg til AutoDrive
|
||||
|
||||
*English version: [USER_MANUAL.md](USER_MANUAL.md)*
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# AD Smart Pickup — user manual
|
||||
|
||||
Version 1.17.1 · Farming Simulator 25 · add-on for AutoDrive
|
||||
Version 1.17.2 · Farming Simulator 25 · add-on for AutoDrive
|
||||
|
||||
*Dansk version: [BRUGERMANUAL.md](BRUGERMANUAL.md)*
|
||||
|
||||
|
||||
@@ -287,6 +287,27 @@ tmrStorage.fillLevels[BEET] = 20000
|
||||
tmrFactory.spec_productionPoint.productionPoint.getIsProductionEnabled = function() return false end
|
||||
check("S11 slukket produktion -> 0", ADSources.getFarmDemand(adEnv, BEET, 1, {}).liters, 0)
|
||||
|
||||
-- S11b: staldens OUTPUT (mælk, gylle) er aldrig et behov — kun varer i foderkrybben er foder
|
||||
local MILK_OUT = 13
|
||||
local feedBarn = {
|
||||
rootNode = {x = 960, z = 960}, ownerFarmId = 1, getOwnerFarmId = function() return 1 end, getName = function() return "Malkestald" end,
|
||||
spec_husbandryFood = {litersPerHour = 2000, fillLevels = {[FORAGE] = 1000}},
|
||||
getHusbandryIsFillTypeSupported = function(self, ft) return ft == MILK_OUT or ft == FORAGE end,
|
||||
getHusbandryFillLevel = function(self, ft) return ft == MILK_OUT and 200000 or ft == FORAGE and 1000 or 0 end,
|
||||
getHusbandryFreeCapacity = function(self, ft) return 9999999 end,
|
||||
}
|
||||
table.insert(g_currentMission.placeableSystem.placeables, feedBarn)
|
||||
check("S11b mælk er ikke behov", ADSources.getFarmDemand(adEnv, MILK_OUT, 1, {}).liters, 0)
|
||||
check("S11b foder er behov (2000 l/t × 24 − 1000)", ADSources.getFarmDemand(adEnv, FORAGE, 1, {}).liters, 47000)
|
||||
-- tom krybbe: foderet kendes fra dyretypens foderdefinition
|
||||
feedBarn.spec_husbandryFood.fillLevels = {}
|
||||
feedBarn.getHusbandryFillLevel = function(self, ft) return ft == MILK_OUT and 200000 or 0 end
|
||||
g_currentMission.animalFoodSystem = {getAnimalFood = function() return {groups = {{fillTypes = {FORAGE}}}} end}
|
||||
check("S11b tom krybbe: foder stadig behov", ADSources.getFarmDemand(adEnv, FORAGE, 1, {}).liters, 48000)
|
||||
check("S11b tom krybbe: mælk stadig ikke behov", ADSources.getFarmDemand(adEnv, MILK_OUT, 1, {}).liters, 0)
|
||||
g_currentMission.animalFoodSystem = nil
|
||||
table.remove(g_currentMission.placeableSystem.placeables)
|
||||
|
||||
-- S12 (inventar): alt gården har liggende, pr. bygning, kun bygninger med indhold
|
||||
factory.ownerFarmId = 1; silo.ownerFarmId = 1; objectStorage.ownerFarmId = 1
|
||||
local inventory = ADSources.getFarmInventory(adEnv, 1)
|
||||
|
||||
Reference in New Issue
Block a user