fix: guard vejnet-afstand (køretøjer uden getClosestWayPoint), kun motoriserede køretøjer i listen (v1.9.5.0)
This commit is contained in:
@@ -40,7 +40,9 @@ function ADRunsController.getFarmVehicles(adEnv)
|
||||
local farmId = g_currentMission:getFarmId()
|
||||
local result = {}
|
||||
for _, vehicle in pairs(adEnv.AutoDrive.getAllVehicles()) do
|
||||
if vehicle.ad ~= nil and vehicle.getOwnerFarmId ~= nil and vehicle:getOwnerFarmId() == farmId then
|
||||
-- kun motoriserede (traktorer, høstere); AD-spec'en sidder også på redskaber
|
||||
local isMotorized = vehicle.spec_motorized ~= nil or vehicle.spec_motorized == nil and vehicle.startAutoDrive ~= nil
|
||||
if vehicle.ad ~= nil and isMotorized and vehicle.getOwnerFarmId ~= nil and vehicle:getOwnerFarmId() == farmId then
|
||||
table.insert(result, vehicle)
|
||||
end
|
||||
end
|
||||
@@ -230,7 +232,13 @@ function ADRunsController.validateVehicle(adEnv, run, vehicle)
|
||||
result.reason = "cannotCarry"
|
||||
return result
|
||||
end
|
||||
local distance = adEnv.ADGraphManager.getDistanceFromNetwork ~= nil and adEnv.ADGraphManager:getDistanceFromNetwork(vehicle) or 0
|
||||
-- AD's getDistanceFromNetwork kalder vehicle:getClosestWayPoint(), som ikke alle
|
||||
-- AD-køretøjer har (set in-game på en høster) — uden metoden springes tjekket over.
|
||||
local distance = 0
|
||||
if vehicle.getClosestWayPoint ~= nil and adEnv.ADGraphManager.getDistanceFromNetwork ~= nil then
|
||||
local ok, value = pcall(adEnv.ADGraphManager.getDistanceFromNetwork, adEnv.ADGraphManager, vehicle)
|
||||
distance = ok and value or 0
|
||||
end
|
||||
if distance == nil or distance > ADRunsController.MAX_NETWORK_DISTANCE then
|
||||
result.reason = "farFromNetwork"
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user