fix(forsyning): rest ved fuldt mål køres til run'ets andet mål med mest plads før Wait; staldes læssestationer er aldrig kilde for halm/foder (kun output) (v1.18.6.0)

This commit is contained in:
2026-09-24 18:07:24 +02:00
parent 2d6d2c31a5
commit a281600760
6 changed files with 97 additions and 9 deletions
+30
View File
@@ -409,6 +409,16 @@ local function buildCowWorld()
return driver
end
-- P0: en STALDS læssestation (gylle/mælk) er aldrig kilde for halm/foder, selv om den "har" halm
-- (in-game 24/9: TMR- og Cow Food-traktorer skulle hente halm ved 'Pig Slurry 1')
do
local cowDriverP0 = buildCowWorld()
addMarker(22, "Pig Slurry 1", "Pig Slurry", 400, 0)
table.insert(stations, makeStation(122, 400, 15, {[STRAW] = 1000, [LIQUIDMANURE or 99] = 5000}))
stations[#stations].owningPlaceable = {getHusbandryFillLevel = function() return 0 end, getName = function() return "Svinesti" end}
check("P0 halm hentes ikke fra svinestiens gyllestation", manager:getNextPickup(cowDriverP0, false), 21)
end
-- P1: halm mangler mest -> hentes fra halmladen, IKKE fra fabrikken (selv om den er mindst fyldt)
local cowDriver = buildCowWorld()
check("P1 halm hentes fra siloen, ikke fabrikkens input", manager:getNextPickup(cowDriver, false), 21)
@@ -863,6 +873,26 @@ UnloadTask.update(tp, 16)
check("I4 kun run'ets pulje", tp.destinationID, 40)
ADRunsController.store = ADRuns.newStore()
-- I8: målet er fuldt med rest på vognen, men run'et har FLERE mål -> resten køres til det mål med plads
-- (in-game 24/9: 'Pig Food' med 2,4M l halm holdt ved den første svinesti; de fire andre fik intet)
buildWaitWorld()
addMarker(31, "Cow 2 Food", "Cow Food", 6000, 0)
local pen2Levels = {[STRAW] = 10000}
table.insert(unloadStations, makeUnloadStation(131, 6000, 10, pen2Levels, {[STRAW] = 100000}, {name = "sti 2"}))
local v8, t8 = makeUnloadingVehicle("Pig Food", 531, 5000, 35000)
v8.uniqueId = "vehicleI8"
testVehicles = {v8}
ADRunsController.store = ADRuns.newStore()
local pens = ADRunsController.createRun("Pig Food")
ADRunsController.updateRun(pens.id, {targetWayPointIds = {30, 31}, waitPoolGroup = "Cow Wait"})
ADRunsController.assignVehicle(pens.id, v8)
UnloadTask.update(t8, 16)
check("I8 resten køres til det andet mål", t8.destinationID, 31)
check("I8 AD's aflæsningsmål skiftet", v8.ad.stateModule.secondMarkerId, 31)
check("I8 logget", countLogsSince(1, "resten") >= 1, true)
ADRunsController.store = ADRuns.newStore()
testVehicles = {}
-- ==== S: læs-bytte fra Wait — halm-rest ved Wait, målet mangler TMR -> aflæs halm i silo ====
local function buildSwapWorld()
buildWaitWorld() -- stald: halm FULD (50000/50000), TMR 10000/100000