fix: fane sidst i ESC-menuen (ingen omrokering), stald-foder via spec_husbandryFood/animalFoodSystem, mål = kun stalde+fabrikker, korte Wait-labels (v1.9.2.0)

This commit is contained in:
2026-09-23 00:13:58 +02:00
parent 90d86b22e9
commit 3c22eae0eb
6 changed files with 150 additions and 42 deletions
+9 -3
View File
@@ -215,10 +215,16 @@ fastracA.ad.stateModule.active = true
ADRunsController.startRun(adEnv, cow.id)
check("C7 ikke dobbelt-startet", fastracA.started, 1)
-- C8: mål-markører og Wait-puljer til dropdowns
-- C8: mål-markører (kun stalde og fabrikker — siloer tager alt og er ikke mål; stalde først,
-- så fabrikker, så navn) og Wait-puljer til dropdowns
unloadAt[94].owningPlaceable = {getHusbandryFillLevel = function() return 0 end}
addMarker(96, "8 Silo Storage", "Siloer", 100, 0); unloadAt[96] = {accepts = {[STRAW] = 1}, owningPlaceable = {spec_silo = {}}}
addMarker(97, "TMR Unload", "Fabrication", 900, 0); unloadAt[97] = {accepts = {[STRAW] = 1}, owningPlaceable = {spec_productionPoint = {}}}
addMarker(98, "Bull Food", "Cow Food", 5100, 0); unloadAt[98] = {accepts = {[STRAW] = 1}, owningPlaceable = {getHusbandryFillLevel = function() return 0 end}}
local targets = ADRunsController.getTargetMarkers(adEnv, 1)
check("C8 kun markører med aflæsningsstation", #targets, 1)
check("C8 navn", targets[1].name, "Cow 1 Food")
check("C8 kun stalde og fabrikker (ikke siloen)", #targets, 3)
check("C8 stalde først, alfabetisk", targets[1].name .. "," .. targets[2].name, "Bull Food,Cow 1 Food")
check("C8 fabrik sidst", targets[3].name, "TMR Unload")
local pools = ADRunsController.getWaitPools(adEnv)
check("C8 to puljer (F91 er ikke en Wait-mappe)", #pools, 2)
check("C8 sorteret", pools[1].group, "Cow Wait")
+31
View File
@@ -840,6 +840,37 @@ local eLevel, eCapacity = ADSmartPickup.getStationLevelAndCapacity(unloadStation
check("E3 niveau i målet", eLevel, 40000)
check("E3 kapacitet i målet", eCapacity, 100000)
check("E3 vare målet ikke tager -> nil", ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], MILK, 1), nil)
-- E4: FS25-stald med foder-spec: foder læses fra spec_husbandryFood (fælles kapacitet),
-- fodertyper fra animalFoodSystem, halm fra spec_husbandryStraw; outputs (mælk) tages ikke
buildCowWorld()
local foodLevels = {[TMR] = 10000, [HAY] = 5000}
local fs25Barn = {
getName = function() return "FS25-kostald" end,
spec_husbandryFood = {fillLevels = foodLevels, capacity = 100000, animalTypeIndex = 7},
spec_husbandryStraw = {fillLevel = 20000, capacity = 300000},
-- staldens egen "understøtter" siger også ja til mælk (output) — må ikke blive et mål
getHusbandryIsFillTypeSupported = function(_, fillType) return fillType == MILK or fillType == STRAW or fillType == TMR end,
getHusbandryFillLevel = function(_, fillType) if fillType == STRAW then return 20000 end return 0 end,
getHusbandryCapacity = function(_, fillType) if fillType == STRAW then return 300000 end return 0 end,
}
g_currentMission.animalFoodSystem = {
getAnimalFood = function(_, animalTypeIndex) if animalTypeIndex == 7 then return {groups = {{fillTypes = {TMR}}, {fillTypes = {HAY, GRASS}}}} end end,
getMixturesByAnimalTypeIndex = function() return {} end,
}
unloadStations[1].targetStorages = nil
unloadStations[1].owningPlaceable = fs25Barn
local tmrLevel, tmrCapacity = ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], TMR, 1)
check("E4 TMR-niveau fra foder-spec", tmrLevel, 10000)
check("E4 TMR-kapacitet = eget + fælles fri plads", tmrCapacity, 10000 + (100000 - 15000))
local grassLevel, grassCapacity = ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], GRASS, 1)
check("E4 græs (fodergruppe uden lager) niveau 0", grassLevel, 0)
check("E4 græs kapacitet = fælles fri plads", grassCapacity, 85000)
local strawLevel, strawCapacity = ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], STRAW, 1)
check("E4 halm via husbandry-opslag", strawLevel .. "/" .. strawCapacity, "20000/300000")
check("E4 mælk (output) er ikke et mål", ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], MILK, 1), nil)
check("E4 sukkerroer (ikke foder) er ikke et mål", ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], SUGARBEET, 1), nil)
g_currentMission.animalFoodSystem = nil
check("E3 farmId", ADSmartPickup.getFarmId(eDriver), 1)
-- L6: samme valg logges kun én gang