feat(marker): vender/river/læssevogn genbruger slåmaskinens Courseplay-kursus (v1.22.0.0)
In-game 25/9: læssevognens nye CP-kursus lå forskudt i forhold til skårene -> ikke samlet korrekt. Slåkurset gemmes pr. mark (kopi) og kopieres til næste trin med vehicle:cpCopyCourse; efter genindlæsning hentes det fra slåmaskinen (mowVehicle gemt i ADSmartPickup_fields.xml).
This commit is contained in:
@@ -74,7 +74,16 @@ function ADCpBridge.isWorking(vehicle)
|
||||
return vehicle.getIsAIActive ~= nil and vehicle:getIsAIActive() or false
|
||||
end
|
||||
|
||||
function ADCpBridge.start(vehicle, fieldX, fieldZ, onDone)
|
||||
-- Køretøjets nuværende Courseplay-kursus (slåmaskinens kursus genbruges af de næste trin).
|
||||
function ADCpBridge.getCourse(vehicle)
|
||||
if vehicle == nil or vehicle.getFieldWorkCourse == nil then return nil end
|
||||
local ok, course = pcall(vehicle.getFieldWorkCourse, vehicle)
|
||||
return ok and course or nil
|
||||
end
|
||||
|
||||
-- course (valgfri): et færdigt kursus (slåmaskinens) der kopieres til køretøjet i stedet for at lave et
|
||||
-- nyt — så vender/river/læssevogn kører præcis slåmaskinens baner (in-game 25/9: nyt kursus lå forskudt).
|
||||
function ADCpBridge.start(vehicle, fieldX, fieldZ, onDone, course)
|
||||
if not ADCpBridge.isAvailable() then
|
||||
return nil, "Courseplay (FIELDWORK_CP) findes ikke"
|
||||
end
|
||||
@@ -93,16 +102,27 @@ function ADCpBridge.start(vehicle, fieldX, fieldZ, onDone)
|
||||
handle.finished = true
|
||||
if not handle.cancelled then onDone(ok, reason) end
|
||||
end
|
||||
local function startWithCourse()
|
||||
job:setValues()
|
||||
local ok, err = job:validate(farmId)
|
||||
if not ok then return finish(false, "Courseplay: " .. tostring(err)) end
|
||||
g_currentMission.aiSystem:startJob(job, farmId)
|
||||
finish(true, handle.copiedCourse and "copied" or nil)
|
||||
end
|
||||
local function generateAndStart()
|
||||
if handle.cancelled then return end
|
||||
job:onClickGenerateFieldWorkCourse(function(course)
|
||||
if course ~= nil and vehicle.cpCopyCourse ~= nil then
|
||||
local copied, copyError = pcall(vehicle.cpCopyCourse, vehicle, course)
|
||||
if copied then
|
||||
handle.copiedCourse = true
|
||||
return startWithCourse()
|
||||
end
|
||||
Logging.warning("ADSmartPickup: kunne ikke kopiere slåkursus: %s — laver nyt", tostring(copyError))
|
||||
end
|
||||
job:onClickGenerateFieldWorkCourse(function(generated)
|
||||
if handle.cancelled then return end
|
||||
if not course then return finish(false, "Courseplay kunne ikke lave kursus") end
|
||||
job:setValues()
|
||||
local ok, err = job:validate(farmId)
|
||||
if not ok then return finish(false, "Courseplay: " .. tostring(err)) end
|
||||
g_currentMission.aiSystem:startJob(job, farmId)
|
||||
finish(true)
|
||||
if not generated then return finish(false, "Courseplay kunne ikke lave kursus") end
|
||||
startWithCourse()
|
||||
end)
|
||||
end
|
||||
handle.onBoundary = function(_, success, message)
|
||||
|
||||
Reference in New Issue
Block a user