diff --git a/FS25_ADSmartPickup/adFieldWork.lua b/FS25_ADSmartPickup/adFieldWork.lua index 079d394..d616284 100644 --- a/FS25_ADSmartPickup/adFieldWork.lua +++ b/FS25_ADSmartPickup/adFieldWork.lua @@ -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 diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index c6e788a..049d886 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.38.1.0 + 1.38.2.0 <en>AD Smart Pickup</en>