fix(flows): review v1.51 — start af stoppet flow venter hvis traktoren er lånt af puljen, stop/slet af et stoppet flow rører ikke lånte traktorer, oprydning efter indlæsning springer lånte over, vogn holdt af ET kørende flow, flyttet traktor glemmer sin vogn, Stop-knap også for flows der holder stille, fejlet start sætter vognen tilbage, bygning væk kun for bygninger set i sessionen, spuNameFleet rører kun egne ikke-delte parkeringer (v1.51.2.0)
This commit is contained in:
@@ -9,7 +9,8 @@ ADFleetNames.LOG_PREFIX = "ADSmartPickup: navne: "
|
||||
-- ---- ren logik ----
|
||||
|
||||
-- vehicles = {{id, model, name, inRun, selfPropelled}} -> {{id, name, parkName, rename}}
|
||||
function ADFleetNames.plan(vehicles)
|
||||
-- parkUse = {[parkIndex] = antal køretøjer (også redskaber) med den parkering}: delte parkeringer røres ikke.
|
||||
function ADFleetNames.plan(vehicles, parkUse)
|
||||
local byModel = {}
|
||||
for _, vehicle in ipairs(vehicles or {}) do
|
||||
if not vehicle.inRun and not vehicle.selfPropelled then
|
||||
@@ -27,7 +28,10 @@ function ADFleetNames.plan(vehicles)
|
||||
local result = {}
|
||||
for _, vehicle in ipairs(vehicles or {}) do
|
||||
local name = newNames[vehicle.id] or vehicle.name or vehicle.model
|
||||
table.insert(result, {id = vehicle.id, name = name, parkName = "P " .. name, rename = newNames[vehicle.id] ~= nil and name ~= vehicle.name})
|
||||
local ownPark = vehicle.park == nil or ((parkUse or {})[vehicle.park] or 1) <= 1
|
||||
table.insert(result, {id = vehicle.id, name = name, parkName = "P " .. name,
|
||||
rename = newNames[vehicle.id] ~= nil and name ~= vehicle.name,
|
||||
renamePark = newNames[vehicle.id] ~= nil and ownPark})
|
||||
end
|
||||
return result
|
||||
end
|
||||
@@ -35,18 +39,27 @@ end
|
||||
-- ---- spil ----
|
||||
|
||||
function ADFleetNames.apply(adEnv)
|
||||
local vehicles, byId = {}, {}
|
||||
local vehicles, byId, parkUse = {}, {}, {}
|
||||
local farmId = g_currentMission:getFarmId()
|
||||
for _, any in pairs(g_currentMission.vehicleSystem.vehicles) do
|
||||
local index = any.advd ~= nil and any.advd.parkDestination or nil
|
||||
if type(index) == "number" and index >= 1 and any.getOwnerFarmId ~= nil and any:getOwnerFarmId() == farmId then
|
||||
parkUse[index] = (parkUse[index] or 0) + 1
|
||||
end
|
||||
end
|
||||
for _, vehicle in ipairs(ADRunsController.getFarmVehicles(adEnv)) do
|
||||
local id = ADRunsController.getVehicleId(vehicle)
|
||||
if id ~= nil and vehicle.getName ~= nil then
|
||||
local ownIndex = vehicle.advd ~= nil and vehicle.advd.parkDestination or nil
|
||||
table.insert(vehicles, {id = id, model = tostring(vehicle:getName()), name = ADRuns.vehicleLabel(vehicle),
|
||||
park = type(ownIndex) == "number" and ownIndex >= 1 and ownIndex or nil,
|
||||
inRun = ADRunsController.getRunForVehicle(vehicle) ~= nil,
|
||||
selfPropelled = not ADPool.canPull(ADPool.ownRole(vehicle))})
|
||||
byId[id] = vehicle
|
||||
end
|
||||
end
|
||||
local renamed, parks = 0, 0
|
||||
for _, entry in ipairs(ADFleetNames.plan(vehicles)) do
|
||||
for _, entry in ipairs(ADFleetNames.plan(vehicles, parkUse)) do
|
||||
local vehicle = byId[entry.id]
|
||||
local module = vehicle.ad ~= nil and vehicle.ad.stateModule or nil
|
||||
if entry.rename and module ~= nil and module.setName ~= nil then
|
||||
@@ -56,7 +69,7 @@ function ADFleetNames.apply(adEnv)
|
||||
end
|
||||
local index = vehicle.advd ~= nil and vehicle.advd.parkDestination or nil
|
||||
local marker = type(index) == "number" and index >= 1 and adEnv.ADGraphManager:getMapMarkerById(index) or nil
|
||||
if marker ~= nil and marker.name ~= entry.parkName then
|
||||
if entry.renamePark and marker ~= nil and marker.name ~= entry.parkName then
|
||||
adEnv.ADGraphManager:renameMapMarker(entry.parkName, index)
|
||||
parks = parks + 1
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user