fix(markarbejde): 'ingen maskine sendt' logger hver maskine med rollen og hvorfor (spiller i, AD/CP kører, opgave, marksilo-lån, ikke i flåden); manuel-transport-høstere afvises ikke for afstand til vejnettet (v1.38.2.0)
This commit is contained in:
@@ -137,6 +137,10 @@ function ADFieldWork.getRigs(adEnv)
|
||||
-- egen parkeringstur) — den må ikke kapres midt i en anden kørsel
|
||||
busy = state.assignments[id] ~= nil or isAdActive(vehicle) or ADCpBridge.isWorking(vehicle)
|
||||
or (ADFieldSilos ~= nil and ADFieldSilos.isLoaned(vehicle)),
|
||||
-- hvorfor optaget (til loggen, når ingen maskine kan sendes ud)
|
||||
busyWhy = (state.assignments[id] ~= nil and ("opgave F" .. tostring(state.assignments[id].fieldId)))
|
||||
or (isAdActive(vehicle) and "AutoDrive kører") or (ADCpBridge.isWorking(vehicle) and "Courseplay kører")
|
||||
or (ADFieldSilos ~= nil and ADFieldSilos.isLoaned(vehicle) and "lånt af marksilo-flow") or nil,
|
||||
controlled = isControlledByPlayer(vehicle),
|
||||
-- manuel transport: spilleren kører den til marken (for bred til vejene med skærebord)
|
||||
manual = (state.manual or {})[id] == true,
|
||||
@@ -383,6 +387,8 @@ function ADFieldWork.dispatch(adEnv, field, info, decision)
|
||||
local offNetwork = {}
|
||||
local accept = function(candidate)
|
||||
if roleAccept ~= nil and not roleAccept(candidate) then return false end
|
||||
-- manuel transport: spilleren kører den — afstand til AutoDrive-vejnettet er ligegyldig
|
||||
if role == "harvester" and candidate.manual then return true end
|
||||
local d = candidate.x ~= nil and ADFieldWork.distanceToNetwork(adEnv, candidate.x, candidate.z) or nil
|
||||
if d ~= nil and d > ADFieldWork.MAX_OFF_NETWORK then
|
||||
table.insert(offNetwork, string.format("'%s' %.0f m", tostring(candidate.label), d))
|
||||
@@ -410,7 +416,16 @@ function ADFieldWork.dispatch(adEnv, field, info, decision)
|
||||
local noRigKey = tostring(role) .. ":" .. tostring(why)
|
||||
if lastNoRig[field.id] ~= noRigKey then
|
||||
lastNoRig[field.id] = noRigKey
|
||||
log(field.id, "ingen maskine sendt til %s: %s", tostring(role), tostring(why))
|
||||
-- hvem har rollen, og hvorfor kan de ikke bruges (in-game 27/9: "allBusy" uden at sige hvem)
|
||||
local who = {}
|
||||
for _, candidate in ipairs(candidates) do
|
||||
if candidate.role == role or (candidate.roles ~= nil and candidate.roles[role]) then
|
||||
local state = candidate.controlled and "spiller i førersædet" or candidate.busyWhy
|
||||
or (not candidate.enabled and "ikke i flåden") or (roleAccept ~= nil and not roleAccept(candidate) and "kan ikke (afgrøde/frø)") or "ledig"
|
||||
table.insert(who, string.format("'%s': %s", tostring(candidate.label), state))
|
||||
end
|
||||
end
|
||||
log(field.id, "ingen maskine sendt til %s: %s%s", tostring(role), tostring(why), #who > 0 and (" — " .. table.concat(who, "; ")) or "")
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.38.1.0</version>
|
||||
<version>1.38.2.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
Reference in New Issue
Block a user