feat: køretøjer navngives efter deres flow (AD-førernavn 'Milk Collect 1'), bruges i log og menu; modelnavn tilbage ved udmeldelse (v1.17.0.0)
This commit is contained in:
@@ -136,6 +136,45 @@ function ADRunsController.unassignVehicle(vehicle)
|
||||
end
|
||||
end
|
||||
|
||||
-- ---- køretøjsnavne ----
|
||||
|
||||
ADRunsController.NAME_INTERVAL_MS = 2000
|
||||
local nameTimerMs = 0
|
||||
local namedByUs = {}
|
||||
|
||||
-- Sætter AutoDrives førernavn efter forløbet ("Milk Collect 1"). Et køretøj der ikke længere er i et
|
||||
-- forløb, får modelnavnet tilbage — men kun hvis navnet er et vi selv har sat (brugerens egne navne røres ikke).
|
||||
function ADRunsController.applyVehicleNames(adEnv)
|
||||
local store = ADRunsController.store
|
||||
local names = ADRuns.vehicleNames(store)
|
||||
for _, vehicle in ipairs(ADRunsController.getFarmVehicles(adEnv)) do
|
||||
local stateModule = vehicle.ad ~= nil and vehicle.ad.stateModule or nil
|
||||
if stateModule ~= nil and stateModule.setName ~= nil then
|
||||
local id = ADRunsController.getVehicleId(vehicle)
|
||||
local wanted = id ~= nil and names[id] or nil
|
||||
local current = stateModule.getName ~= nil and stateModule:getName() or stateModule.driverName
|
||||
if wanted ~= nil then
|
||||
if current ~= wanted then
|
||||
stateModule:setName(wanted)
|
||||
if stateModule.raiseDirtyFlag ~= nil then stateModule:raiseDirtyFlag() end
|
||||
end
|
||||
namedByUs[vehicle] = wanted
|
||||
elseif (namedByUs[vehicle] ~= nil and current == namedByUs[vehicle]) or ADRuns.isRunVehicleName(store, current) then
|
||||
stateModule:setName(tostring(vehicle:getName()))
|
||||
if stateModule.raiseDirtyFlag ~= nil then stateModule:raiseDirtyFlag() end
|
||||
namedByUs[vehicle] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ADRunsController.applyVehicleNamesThrottled(adEnv, dt)
|
||||
nameTimerMs = nameTimerMs + (dt or 0)
|
||||
if nameTimerMs < ADRunsController.NAME_INTERVAL_MS then return end
|
||||
nameTimerMs = 0
|
||||
ADRunsController.applyVehicleNames(adEnv)
|
||||
end
|
||||
|
||||
-- ---- varer ----
|
||||
|
||||
function ADRunsController.getCarriableFillTypes(adEnv, vehicle)
|
||||
@@ -270,12 +309,17 @@ end
|
||||
|
||||
-- Fire traktorer kan hedde det samme; løbenummeret er pladsen i farmens AD-køretøjsliste.
|
||||
function ADRunsController.getVehicleLabel(adEnv, vehicle)
|
||||
local label, model = tostring(ADRuns.vehicleLabel(vehicle)), tostring(vehicle:getName())
|
||||
-- førernavn efter forløbet: "Milk Collect 1 (Virtus 135 RVshift)"; ellers modelnavn + løbenummer
|
||||
if label ~= model then
|
||||
return string.format("%s (%s)", label, model)
|
||||
end
|
||||
for index, candidate in ipairs(ADRunsController.getFarmVehicles(adEnv)) do
|
||||
if candidate == vehicle then
|
||||
return string.format("%s (#%d)", tostring(vehicle:getName()), index)
|
||||
return string.format("%s (#%d)", model, index)
|
||||
end
|
||||
end
|
||||
return tostring(vehicle:getName())
|
||||
return model
|
||||
end
|
||||
|
||||
-- ---- bygninger (flow-tavlen): bygnings-id'er -> markører ----
|
||||
@@ -428,7 +472,7 @@ function ADRunsController.getFlowRow(adEnv, run)
|
||||
local vehiclesById = getFarmVehiclesById(adEnv)
|
||||
for _, vehicleId in ipairs(run.vehicleIds) do
|
||||
local vehicle = vehiclesById[vehicleId]
|
||||
table.insert(row.vehicleNames, vehicle ~= nil and tostring(vehicle:getName()) or "?")
|
||||
table.insert(row.vehicleNames, vehicle ~= nil and tostring(ADRuns.vehicleLabel(vehicle)) or "?")
|
||||
end
|
||||
local status = ADRunsController.getRunStatus(adEnv, run)
|
||||
row.running, row.total, row.isRunning = status.running, status.total, status.isRunning
|
||||
@@ -484,7 +528,7 @@ local function hasAutoload(adEnv, vehicle)
|
||||
autoloadDiagnosed[vehicle] = true
|
||||
local parts = {}
|
||||
for _, unit in ipairs(trailers or {}) do table.insert(parts, describeAutoloadUnit(unit)) end
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s': ingen autoload fundet på enhederne: %s", tostring(vehicle:getName()), #parts > 0 and table.concat(parts, "; ") or "(ingen enheder)")
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s': ingen autoload fundet på enhederne: %s", tostring(ADRuns.vehicleLabel(vehicle)), #parts > 0 and table.concat(parts, "; ") or "(ingen enheder)")
|
||||
end
|
||||
return false
|
||||
end
|
||||
@@ -719,10 +763,10 @@ function ADRunsController.findWrongCargoDump(adEnv, run, vehicle, targetId)
|
||||
local marker, why = ADLoadSwap.findDumpMarker(adEnv, vehicle, fillType, liters, targetId, isReachable)
|
||||
local fillTypeName = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(fillType) or tostring(fillType)
|
||||
if marker == nil then
|
||||
Logging.warning(ADRunsController.LOG_PREFIX .. "run '%s': '%s' har %.0f l %s på vognen, som målet ikke tager — %s; AutoDrive starter som normalt", tostring(run.name), tostring(vehicle:getName()), liters, tostring(fillTypeName), tostring(why))
|
||||
Logging.warning(ADRunsController.LOG_PREFIX .. "run '%s': '%s' har %.0f l %s på vognen, som målet ikke tager — %s; AutoDrive starter som normalt", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)), liters, tostring(fillTypeName), tostring(why))
|
||||
return nil
|
||||
end
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' læsser først %.0f l %s af i %s (markør %s) — målet tager ikke varen", tostring(run.name), tostring(vehicle:getName()), liters, tostring(fillTypeName), tostring(marker.name), tostring(marker.markerIndex or marker.id))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' læsser først %.0f l %s af i %s (markør %s) — målet tager ikke varen", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)), liters, tostring(fillTypeName), tostring(marker.name), tostring(marker.markerIndex or marker.id))
|
||||
return {marker = marker, fillType = fillType, liters = liters}
|
||||
end
|
||||
|
||||
@@ -793,7 +837,7 @@ ADRunsController.AL_UNLOAD_CENTER = 1
|
||||
local function ensureAutoloadUnload(adEnv, vehicle)
|
||||
if getSettingValue(adEnv, vehicle, "ALUnload") == 0 then
|
||||
setSetting(adEnv, vehicle, "ALUnload", ADRunsController.AL_UNLOAD_CENTER)
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s': AutoDrives 'AL unload' var fra — sat til 'center' (stropper løsnes i triggeren)", tostring(vehicle:getName()))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s': AutoDrives 'AL unload' var fra — sat til 'center' (stropper løsnes i triggeren)", tostring(ADRuns.vehicleLabel(vehicle)))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -914,7 +958,7 @@ function ADRunsController.startRun(adEnv, runId)
|
||||
local validation = ADRunsController.validateVehicle(adEnv, run, vehicle)
|
||||
local result = {vehicle = vehicle, ok = validation.ok, reason = validation.reason, missingBuilding = validation.missingBuilding}
|
||||
if not validation.ok then
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' sprunget over (%s)", tostring(run.name), tostring(vehicle:getName()), tostring(validation.reason))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' sprunget over (%s)", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)), tostring(validation.reason))
|
||||
end
|
||||
if validation.ok then
|
||||
local ingredients = ADRunsController.getRunIngredients(adEnv, run, vehicle)
|
||||
@@ -922,10 +966,10 @@ function ADRunsController.startRun(adEnv, runId)
|
||||
if ok then
|
||||
started = started + 1
|
||||
local target = run.kind == "outbound" and ("kilde " .. tostring(run.sourceWayPointIds[1])) or ("markør " .. tostring(run.targetWayPointId))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' startet mod %s", tostring(run.name), tostring(vehicle:getName()), target)
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' startet mod %s", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)), target)
|
||||
else
|
||||
result.ok, result.reason = false, "error"
|
||||
Logging.warning(ADRunsController.LOG_PREFIX .. "run '%s': kunne ikke starte '%s': %s", tostring(run.name), tostring(vehicle:getName()), tostring(err))
|
||||
Logging.warning(ADRunsController.LOG_PREFIX .. "run '%s': kunne ikke starte '%s': %s", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)), tostring(err))
|
||||
end
|
||||
end
|
||||
table.insert(results, result)
|
||||
@@ -944,7 +988,7 @@ function ADRunsController.stopIfRunning(vehicle, reason)
|
||||
return false
|
||||
end
|
||||
stopVehicle(vehicle)
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s' stoppet (%s)", tostring(vehicle:getName()), tostring(reason))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s' stoppet (%s)", tostring(ADRuns.vehicleLabel(vehicle)), tostring(reason))
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -960,7 +1004,7 @@ function ADRunsController.stopRun(adEnv, runId)
|
||||
if vehicle ~= nil and isVehicleActive(vehicle) then
|
||||
stopVehicle(vehicle)
|
||||
stopped = stopped + 1
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' stoppet", tostring(run.name), tostring(vehicle:getName()))
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': '%s' stoppet", tostring(run.name), tostring(ADRuns.vehicleLabel(vehicle)))
|
||||
end
|
||||
end
|
||||
ADRunsController.runningRuns[runId] = nil
|
||||
|
||||
Reference in New Issue
Block a user