feat(foder): parallelt foder (høns: korn 80 %/roesnitter 20 %) — gruppeandele af truget, ingen 'bedste foder først'-spærring (v1.19.7.0)
This commit is contained in:
@@ -806,6 +806,20 @@ check("E6 nødlidende trug: hø direkte", manager:getNextPickup(e5Driver, false)
|
||||
ADOutbound = nil
|
||||
ADRunsController.store = ADRuns.newStore()
|
||||
testVehicles = {}
|
||||
-- E7 (parallelt foder, høns): korn og roesnitter spises SAMTIDIG (80 %/20 %) — truget har sin kornandel,
|
||||
-- mangler roesnitter -> de hentes, "bedste foder først" spærrer ikke (in-game 24/9: kun 70 % produktion)
|
||||
g_currentMission.animalFoodSystem = {
|
||||
getAnimalFood = function(_, animalTypeIndex) if animalTypeIndex == 7 then return {consumptionType = "PARALLEL", groups = {
|
||||
{fillTypes = {TMR}, productionWeight = 0.7, eatWeight = 0.8}, {fillTypes = {HAY}, productionWeight = 0.3, eatWeight = 0.2}}} end end,
|
||||
getMixturesByAnimalTypeIndex = function() return {} end,
|
||||
}
|
||||
e5Straw.level = 100000
|
||||
e5Food[TMR], e5Food[HAY], e5Food[GRASS] = 24000, 0, 0 -- kornandel (80 % af 30000) fuld, 20 % fri
|
||||
stations[1].getFillLevel = function(_, fillType) return fillType == TMR and 30000 or 0 end -- korn findes: serielt ville det vælges
|
||||
check("E7 parallelt: roesnitter hentes selv om truget kun er 20 % tomt", manager:getNextPickup(e5Driver, false), 23)
|
||||
e5Food[TMR] = 30000 -- truget helt fuldt af korn: ingen plads til snitter -> intet behov for dem
|
||||
local hayLevel, hayCapacity = ADSmartPickup.getStationLevelAndCapacity(unloadStations[1], HAY, 1)
|
||||
check("E7 fuldt trug: snitternes plads = 0", hayCapacity - hayLevel, 0)
|
||||
g_currentMission.animalFoodSystem = nil
|
||||
|
||||
-- W13: AD stopper vognen i triggeren FØR markøren (isTargetReached=false) — Wait udløses alligevel
|
||||
|
||||
@@ -232,5 +232,17 @@ check("AP intet på vej -> samme værdier", ADSupplyPlanner.applyPending(pending
|
||||
local ranked = ADSupplyPlanner.rankNeeds(adjusted, 8000)
|
||||
check("AP halm fuld (på vej) -> kun trug-varer tilbage", #ranked, 2)
|
||||
|
||||
-- PF: parallelt foder (høns: korn 80 % / roesnitter 20 % af det de spiser) — hver gruppe har sin andel af truget
|
||||
do
|
||||
local WHEAT, BARLEY, BEETCUT = 1, 2, 3
|
||||
local groups = {{fillTypes = {WHEAT, BARLEY}, eatWeight = 0.8}, {fillTypes = {BEETCUT}, eatWeight = 0.2}}
|
||||
local levels = {[WHEAT] = 60000, [BARLEY] = 20000, [BEETCUT] = 0}
|
||||
local lvl, cap = ADSupplyPlanner.parallelFoodShare(groups, levels, 100000, BEETCUT)
|
||||
check("PF roesnitter: andel 20k, har 0", lvl .. "/" .. cap, "0/20000")
|
||||
lvl, cap = ADSupplyPlanner.parallelFoodShare(groups, levels, 100000, BARLEY)
|
||||
check("PF korn-gruppen samlet: 80k af 80k", lvl .. "/" .. cap, "80000/80000")
|
||||
check("PF ukendt vare -> nil", ADSupplyPlanner.parallelFoodShare(groups, levels, 100000, 99), nil)
|
||||
end
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user