feat(navne): markmaskiner der stadig har modelnavnet navngives efter rollen (Læssevogn 5, Roeoptager 2, Mejetærsker 1 …); givne navne og flow-traktorer røres ikke (v1.41.0.0)
This commit is contained in:
@@ -972,6 +972,44 @@ function ADFieldWork.resumeAfterLoad(adEnv)
|
||||
end
|
||||
end
|
||||
|
||||
-- Markmaskiner der stadig hedder modelnavnet ("Unrealistic Engine 3") får et navn efter rollen ("Roeoptager 2").
|
||||
-- Navne spilleren/moden har givet røres aldrig; flow-traktorer navngives af deres flow (ikke i markflåden).
|
||||
local BEET_FRUITS = {SUGARBEET = true, POTATO = true, CARROT = true, PARSNIP = true, BEETROOT = true}
|
||||
local function harvesterSubtype(rig)
|
||||
for fruit in pairs(rig.fruits or {}) do
|
||||
local desc = g_fruitTypeManager ~= nil and g_fruitTypeManager:getFruitTypeByIndex(fruit) or nil
|
||||
if desc ~= nil and BEET_FRUITS[desc.name] then return "beet" end
|
||||
end
|
||||
local chaff = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeIndexByName("CHAFF") or nil
|
||||
local ok, isForage = pcall(function()
|
||||
local vehicle = rig.vehicle
|
||||
for index in ipairs(vehicle.getFillUnits ~= nil and vehicle:getFillUnits() or {}) do
|
||||
if chaff ~= nil and vehicle:getFillUnitSupportsFillType(index, chaff) then return true end
|
||||
end
|
||||
return false
|
||||
end)
|
||||
return ok and isForage and "forage" or nil
|
||||
end
|
||||
|
||||
function ADFieldWork.autoNameFleet(adEnv)
|
||||
local names = {}
|
||||
for _, vehicle in ipairs(ADRunsController.getFarmVehicles(adEnv)) do table.insert(names, ADRuns.vehicleLabel(vehicle)) end
|
||||
for _, rig in ipairs(ADFieldWork.getRigs(adEnv)) do
|
||||
local vehicle = rig.vehicle
|
||||
local stateModule = vehicle.ad ~= nil and vehicle.ad.stateModule or nil
|
||||
local model = vehicle.getName ~= nil and tostring(vehicle:getName()) or nil
|
||||
if stateModule ~= nil and stateModule.setName ~= nil and model ~= nil and ADRuns.vehicleLabel(vehicle) == model and not rig.controlled then
|
||||
local name = ADNaming.fleetName(rig.role, rig.role == "harvester" and harvesterSubtype(rig) or nil, names)
|
||||
if name ~= nil then
|
||||
stateModule:setName(name)
|
||||
if stateModule.raiseDirtyFlag ~= nil then stateModule:raiseDirtyFlag() end
|
||||
table.insert(names, name)
|
||||
Logging.info(ADFieldJobs.LOG_PREFIX .. "'%s' navngivet '%s' (markflåde, %s)", model, name, tostring(rig.role))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ADFieldWork.follow(adEnv, assignment)
|
||||
local vehicle = assignment.vehicle
|
||||
-- Kun når spilleren selv KØRER (bevæger sig uden Courseplay/AutoDrive) slippes sættet — at sidde i
|
||||
|
||||
Reference in New Issue
Block a user