fix: slut-review — pcall om start/dialoger, Auto-varer fra aktivt AD-mål, nil-guards, README
This commit is contained in:
@@ -78,6 +78,8 @@ local function makeVehicle(uniqueId, name, carriable, capacity, x, z)
|
||||
stateModule.raiseDirtyFlag = function(self) self.dirtyCount = self.dirtyCount + 1 end
|
||||
stateModule.setLoopsDone = function(self, n) self.loopsDone = n end
|
||||
stateModule.isActive = function(self) return self.active end
|
||||
-- Bruges af C13: getTargetFillTypes skal følge AD's LIVE mål (mock'er AD's eget getSecondMarker).
|
||||
stateModule.getSecondMarker = function(self) return self.secondMarkerId ~= nil and {id = self.secondMarkerId} or nil end
|
||||
local vehicle = {
|
||||
uniqueId = uniqueId, farmId = 1, rootNode = uniqueId,
|
||||
carriable = carriable, trailers = {level = 0, capacity = capacity},
|
||||
@@ -253,6 +255,41 @@ check("C11 global rotateTargets urørt", adEnv.AutoDrive.settings.rotateTargets.
|
||||
check("C11 useFolders global stadig skrevet", adEnv.AutoDrive.settings.useFolders.current, 2)
|
||||
check("C11 køretøjet startet", noSettings.started, 1)
|
||||
|
||||
-- C12: startAutoDrive() kaster for én traktor -> pcall'et applyAndStart fanger fejlen,
|
||||
-- resultatet markeres ok=false/reason="error", og de ØVRIGE traktorer i run'et startes stadig
|
||||
-- (fejlen må ikke undslippe startRun-loopet).
|
||||
buildWorld()
|
||||
local brokenRun = ADRunsController.createRun("Broken Start")
|
||||
ADRunsController.updateRun(brokenRun.id, {targetWayPointId = 94, loops = 2})
|
||||
local broken = makeVehicle("vehicleBroken", "Fejl-traktor", {STRAW, TMR}, 500000, 100, 0)
|
||||
broken.startAutoDrive = function() error("boom") end
|
||||
local normal = makeVehicle("vehicleNormal", "Normal-traktor", {STRAW, TMR}, 500000, 200, 0)
|
||||
ADRunsController.assignVehicle(brokenRun.id, broken)
|
||||
ADRunsController.assignVehicle(brokenRun.id, normal)
|
||||
local c12Results = ADRunsController.startRun(adEnv, brokenRun.id)
|
||||
check("C12 to resultater", #c12Results, 2)
|
||||
check("C12 fejl-traktor ok=false", c12Results[1].ok, false)
|
||||
check("C12 fejl-traktor reason=error", c12Results[1].reason, "error")
|
||||
check("C12 fejl-traktor ikke startet", broken.started, nil)
|
||||
check("C12 normal-traktor ok=true", c12Results[2].ok, true)
|
||||
check("C12 normal-traktor startet", normal.started, 1)
|
||||
|
||||
-- C13: Auto-listen følger traktorens LIVE AD-mål (stateModule:getSecondMarker()) mens den kører,
|
||||
-- IKKE run'ets gemte targetWayPointId — ellers afviger listen fra det choosePickup/findSupplyPickup
|
||||
-- faktisk bruger, hvis brugeren redigerer run'ets Mål mens traktoren kører.
|
||||
addMarker(95, "Alt Cow Food", "Cow Food", 5300, 0)
|
||||
unloadAt[95] = {accepts = {[STRAW] = 1000}}
|
||||
local liveRun = ADRunsController.createRun("Live Target")
|
||||
ADRunsController.updateRun(liveRun.id, {targetWayPointId = 94})
|
||||
local liveRunData = ADRuns.getRun(ADRunsController.store, liveRun.id)
|
||||
local liveVehicle = makeVehicle("vehicleLive", "Live-traktor", {STRAW, TMR}, 500000, 300, 0)
|
||||
check("C13 inaktiv: auto-liste fra run'ets mål (94)", table.concat(ADRunsController.getRunIngredients(adEnv, liveRunData, liveVehicle), ","), STRAW .. "," .. TMR)
|
||||
liveVehicle.ad.stateModule.active = true
|
||||
liveVehicle.ad.stateModule.secondMarkerId = 95
|
||||
check("C13 aktiv: auto-liste fra AD's live mål (95)", table.concat(ADRunsController.getRunIngredients(adEnv, liveRunData, liveVehicle), ","), tostring(STRAW))
|
||||
liveVehicle.ad.stateModule.active = false
|
||||
liveVehicle.ad.stateModule.secondMarkerId = nil
|
||||
|
||||
-- C10: målets accepterede varer (til afkrydsning i GUI'et) + køretøjs-label
|
||||
buildWorld()
|
||||
local labelA = makeVehicle("vehicleA", "Fastrac A", {STRAW, TMR}, 1000000)
|
||||
|
||||
Reference in New Issue
Block a user