feat(stald): æg/uld-paller fra staldens egne pallespawnere (hønsehus) som udkørselskilde; brændstoftanke er ikke lager-kilder (v1.18.8.0)
This commit is contained in:
@@ -186,5 +186,32 @@ do
|
||||
check("B-DROP silo beholder sin egen markør (ikke nabosiloens)", byC.silo1.unloadMarker.id, 6)
|
||||
end
|
||||
|
||||
-- B-COOP: hønsehus — foder aflæsses i den ene ende, æg-paller spawnes i den anden (ingen læssestation)
|
||||
do
|
||||
local coop = placeable("coop1", "Chicken Coop", 10000, 0, {getHusbandryFillLevel = function() return 0 end,
|
||||
spec_husbandryPallets = {fillTypeIndexToPalletSpawner = {[99] = {spawnPlaces = {{startNode = {x = 10030, z = 0}}}}}}})
|
||||
table.insert(unloadStations, {owningPlaceable = coop, unloadTriggers = {{exactFillRootNode = {x = 9970, z = 0}}}})
|
||||
addMarker(61, "Chicken Food", "Chicken", 9965, 0)
|
||||
addMarker(62, "Egg Pickup", "Chicken", 10035, 0)
|
||||
ADBuildings.invalidate()
|
||||
local byCoop = {}
|
||||
for _, b in ipairs(ADBuildings.list(adEnv, 1)) do byCoop[b.id] = b end
|
||||
check("B-COOP læssemarkør ved æggene", byCoop.coop1.loadMarker and byCoop.coop1.loadMarker.id, 62)
|
||||
check("B-COOP aflæsningsmarkør ved foderet", byCoop.coop1.unloadMarker and byCoop.coop1.unloadMarker.id, 61)
|
||||
end
|
||||
|
||||
-- B-FUEL: brændstoftank (læssestation kun med DIESEL) er ikke et lager/en kilde
|
||||
do
|
||||
local fmBefore = g_fillTypeManager
|
||||
g_fillTypeManager = {getFillTypeNameByIndex = function(_, index) return index == 900 and "DIESEL" or "X" end}
|
||||
local tank = placeable("fuel1", "Small Petrol Tank", 11000, 0, {})
|
||||
table.insert(loadStations, {owningPlaceable = tank, supportedFillTypes = {[900] = true}, loadTriggers = {{triggerNode = {x = 11000, z = 3}}}})
|
||||
ADBuildings.invalidate()
|
||||
local byFuel = {}
|
||||
for _, b in ipairs(ADBuildings.list(adEnv, 1)) do byFuel[b.id] = b end
|
||||
check("B-FUEL brændstoftank udeladt", byFuel.fuel1, nil)
|
||||
g_fillTypeManager = fmBefore
|
||||
end
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
@@ -389,6 +389,27 @@ local sepProducts = sepSource and ADSources.getProducts(adEnv, sepSource, 1) or
|
||||
check("S14d digestat fra stationen", sepProducts[1] and sepProducts[1].fillType, DIGESTATE)
|
||||
check("S14d mængde", sepProducts[1] and sepProducts[1].level, 42000)
|
||||
|
||||
-- S14e: hønsehus — æg kommer som PALLER fra staldens egen pallespawner (spec_husbandryPallets), ingen
|
||||
-- læssestation ved æggene: markøren ved spawneren er en staldkilde, æggene er pallevarer
|
||||
local EGGS = 31
|
||||
DESC[EGGS] = {index = EGGS, name = "EGG", title = "Æg", isPallet = true}
|
||||
local coopSpawner = {spawnPlaces = {{startNode = {x = 8000, z = 0}}}}
|
||||
local coop = {rootNode = {x = 8040, z = 0}, ownerFarmId = 1, getOwnerFarmId = function() return 1 end, getName = function() return "Chicken Coop" end,
|
||||
getHusbandryFillLevel = function() return 0 end,
|
||||
spec_husbandryPallets = {fillTypeIndexToPalletSpawner = {[EGGS] = coopSpawner}, activeFillTypes = {EGGS}, fillLevels = {[EGGS] = 0}, capacities = {[EGGS] = 5000}}}
|
||||
table.insert(g_currentMission.placeableSystem.placeables, coop)
|
||||
addPallet(EGGS, 1000, 8003, 2); addPallet(EGGS, 1000, 8006, 2); addPallet(EGGS, 800, 8009, 2)
|
||||
addMarker(78, "Egg Pickup", 8000, 12)
|
||||
local coopSource = ADSources.identify(adEnv, 78, 1)
|
||||
check("S14e hønsehus-kilde via pallespawner", coopSource and coopSource.kind, "husbandry")
|
||||
local coopProducts = coopSource and ADSources.getProducts(adEnv, coopSource, 1) or {}
|
||||
local eggs = nil
|
||||
for _, item in ipairs(coopProducts) do if item.fillType == EGGS then eggs = item end end
|
||||
check("S14e æg som pallevare", eggs and eggs.isPallet, true)
|
||||
check("S14e æg på paller ved spawneren", eggs and eggs.available, 2800)
|
||||
check("S14e tre paller", eggs and eggs.palletCount, 3)
|
||||
check("S14e isPalletAt æg", coopSource and ADSources.isPalletAt(coopSource, EGGS), true)
|
||||
|
||||
-- S15: forklaring af en markør til advarslen (hvad opslaget ser)
|
||||
check("S15 forklaring stald", ADSources.explainMarker(adEnv, 10, 1), "læssestation ved markøren hører til 'Kostald' (stald)")
|
||||
check("S15 forklaring ingen station", ADSources.explainMarker(adEnv, 4, 1), "ingen læssestation ved markøren, og ingen fabrik/objektlager inden for 40 m")
|
||||
|
||||
Reference in New Issue
Block a user