fix: forkert last midt i et run — pålæsning afsluttes straks, målet der ikke tager varen regnes som fuldt (Wait), og resten læsses af i silo fra Wait (v1.11.7.0)

This commit is contained in:
2026-09-23 02:24:16 +02:00
parent 91c724b9f4
commit ce32eb8e44
5 changed files with 87 additions and 6 deletions
+35
View File
@@ -923,6 +923,41 @@ check("I6 næste tur: halm til stald 2", manager:getNextPickup(i6, false), 21)
check("I6 mål skiftet til stald 2", i6.ad.stateModule.secondMarkerId, 31)
ADRunsController.store = ADRuns.newStore()
-- ==== V: forkert last på vognen ====
-- V1: pålæsning starter med anden vare på vognen -> opgaven afsluttes straks (AD leverer det den har)
buildCowWorld()
cowLevels[STRAW], cowLevels[TMR] = 90000, 0 -- TMR mangler
local wv = makeSupplyDriver(markerByIndex(21), markerByIndex(30), {TMR, STRAW})
wv.carriable = {TMR, STRAW}; wv.trailers = {level = 8000, capacity = 8000}
wv.units = {{object = {getFillUnitFillLevel = function() return 8000 end, getFillUnitFillType = function() return STRAW end}, fillUnitIndex = 1}}
withDrivePath(wv); wv.targetReached = false
check("V1 TMR vælges som behov", manager:getNextPickup(wv, false), 20)
local loadTask = {vehicle = wv, trailers = wv.trailers, finished = function(self) self.isFinished = true end}
FS25_AutoDrive.LoadAtDestinationTask.update(loadTask, 16)
check("V1 pålæsningsopgave afsluttet pga. halm på vognen", loadTask.isFinished, true)
check("V1 logget", countLogsSince(1, "leverer først") >= 1, true)
-- samme vare på vognen som den der hentes -> opgaven kører normalt
wv.units[1].object.getFillUnitFillType = function() return TMR end
local loadTask2 = {vehicle = wv, trailers = wv.trailers, finished = function(self) self.isFinished = true end}
manager:getNextPickup(wv, false)
FS25_AutoDrive.LoadAtDestinationTask.update(loadTask2, 16)
check("V1 samme vare -> ikke afsluttet", loadTask2.isFinished, nil)
-- V2: ved målet med en vare målet ikke tager -> Wait; ved Wait -> silo uanset "manglende" vare
buildWaitWorld()
table.insert(unloadStations, stations[2]) -- halmladen tager halm
stations[2].unloadTriggers = {{exactFillRootNode = 121}}
stations[2].getIsFillTypeSupported = function(_, fillType) return fillType == STRAW end
stations[2].getFreeCapacity = function() return 100000 end
stations[2].owningPlaceable = {spec_silo = {storages = {{getFillLevel = function() return 0 end}}}}
waitBarnCapacity[STRAW] = nil -- stalden tager IKKE halm
local vw, tw = makeUnloadingVehicle("Fastrac Forkert", 561, 5000, 35000)
UnloadTask.update(tw, 16)
check("V2 målet tager ikke varen -> Wait", tw.destinationID, 40)
UnloadTask.update(tw, ADLoadSwap.CHECK_INTERVAL_MS + 1)
check("V2 fra Wait til silo selv uden manglende vare", tw.destinationID, 21)
waitBarnCapacity[STRAW] = 50000
-- ==== E: eksponerede opslag (bruges af runs-controller og læs-bytte) ====
local eDriver = buildCowWorld()
check("E1 aflæsningsstation ved waypoint", ADSmartPickup.getUnloadStationAtWayPointId(FS25_AutoDrive, 30, 1), unloadStations[1])