From ae7f54aef2d75299ac660aab690ca20b9c40289c Mon Sep 17 00:00:00 2001 From: David Schwietering Date: Sat, 12 Apr 2025 13:52:01 +0200 Subject: [PATCH 1/4] Disabled drive to fieldwork for testing --- scripts/ai/jobs/CpAIJobFieldWork.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ai/jobs/CpAIJobFieldWork.lua b/scripts/ai/jobs/CpAIJobFieldWork.lua index 91c1e86c7..606d62060 100644 --- a/scripts/ai/jobs/CpAIJobFieldWork.lua +++ b/scripts/ai/jobs/CpAIJobFieldWork.lua @@ -38,7 +38,7 @@ function CpAIJobFieldWork:onPreStart() --- Only add the attach header task, if needed. self:addTask(self.attachHeaderTask) end - self:addTask(self.driveToFieldWorkStartTask) + -- self:addTask(self.driveToFieldWorkStartTask) self:addTask(self.fieldWorkTask) end From 4d33b001347b21ad0424417c7e7d204e1e2f7361 Mon Sep 17 00:00:00 2001 From: David Schwietering Date: Sun, 13 Apr 2025 02:18:03 +0200 Subject: [PATCH 2/4] Add debug info --- scripts/specializations/CpAIImplement.lua | 120 ++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/scripts/specializations/CpAIImplement.lua b/scripts/specializations/CpAIImplement.lua index b2f767bab..f55406e54 100644 --- a/scripts/specializations/CpAIImplement.lua +++ b/scripts/specializations/CpAIImplement.lua @@ -24,6 +24,21 @@ end function CpAIImplement.registerEventListeners(vehicleType) SpecializationUtil.registerEventListener(vehicleType, 'onLoad', CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementStart", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementActive", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementEnd", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementPrepareForWork", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementStartLine", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementEndLine", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementStartTurn", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementTurnProgress", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementEndTurn", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementSideOffsetChanged", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementBlock", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementContinue", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementPrepareForTransport", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementJobVehicleBlock", CpAIImplement) + SpecializationUtil.registerEventListener(vehicleType, "onAIImplementJobVehicleContinue", CpAIImplement) end function CpAIImplement.registerFunctions(vehicleType) @@ -41,4 +56,109 @@ end function CpAIImplement:onLoad(savegame) self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] local spec = self.spec_cpAIImplement +end + +function CpAIImplement:onAIImplementStart() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementStart()") +end + +function CpAIImplement:onAIImplementActive() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + -- CpUtil.info("onAIImplementActive()") +end + +function CpAIImplement:onAIImplementEnd() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementEnd()") +end + +function CpAIImplement:onAIImplementPrepareForWork() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementPrepareForWork()") +end + +function CpAIImplement:onAIImplementStartLine() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementStartLine()") +end + +function CpAIImplement:onAIImplementEndLine() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementEndLine()") +end + +function CpAIImplement:onAIImplementStartTurn() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementStartTurn()") +end + +function CpAIImplement:onAIImplementTurnProgress() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + -- CpUtil.info("onAIImplementTurnProgress()") +end + +function CpAIImplement:onAIImplementEndTurn() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementEndTurn()") +end + +function CpAIImplement:onAIImplementSideOffsetChanged() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementSideOffsetChanged()") +end + +function CpAIImplement:onAIImplementBlock() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementBlock()") +end + +function CpAIImplement:onAIImplementContinue() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementContinue()") +end + +function CpAIImplement:onAIImplementPrepareForTransport() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementPrepareForTransport()") +end + +function CpAIImplement:onAIImplementJobVehicleBlock() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementJobVehicleBlock()") +end + +function CpAIImplement:onAIImplementJobVehicleContinue() + self.spec_cpAIImplement = self["spec_" .. CpAIImplement.SPEC_NAME] + local spec = self.spec_cpAIImplement + + CpUtil.info("onAIImplementJobVehicleContinue()") end \ No newline at end of file From 4f4f0e9a1b71651c9b04b72df97be354e54abc92 Mon Sep 17 00:00:00 2001 From: David Schwietering Date: Sat, 19 Apr 2025 14:16:04 +0200 Subject: [PATCH 3/4] Changed :stopFieldworker() to also be called on the client --- scripts/ai/tasks/CpAITaskFieldWork.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ai/tasks/CpAITaskFieldWork.lua b/scripts/ai/tasks/CpAITaskFieldWork.lua index dc561d87c..b5cfa4dbe 100644 --- a/scripts/ai/tasks/CpAITaskFieldWork.lua +++ b/scripts/ai/tasks/CpAITaskFieldWork.lua @@ -119,9 +119,9 @@ function CpAITaskFieldWork:stop(wasJobStopped) cpSpec.driveStrategy:raiseControllerEvent( AIDriveStrategyCourse.onStopRefillingEvent) end + self.vehicle:stopFieldWorker() if self.isServer then self:debug("Field work task stopped.") - self.vehicle:stopFieldWorker() self.vehicle:cpBrakeToStop() end CpAITask.stop(self, wasJobStopped) From 7c64527363d6a9444d2ab7a922966654c90c7558 Mon Sep 17 00:00:00 2001 From: Peter Vaiko Date: Sat, 19 Apr 2025 11:57:27 -0400 Subject: [PATCH 4/4] raise start event after updateAIFieldWorkerImplementData --- scripts/ai/tasks/CpAITaskFieldWork.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/ai/tasks/CpAITaskFieldWork.lua b/scripts/ai/tasks/CpAITaskFieldWork.lua index b5cfa4dbe..d02dd47c8 100644 --- a/scripts/ai/tasks/CpAITaskFieldWork.lua +++ b/scripts/ai/tasks/CpAITaskFieldWork.lua @@ -64,14 +64,14 @@ function CpAITaskFieldWork:start() self:debug("Field work task started.") local spec = self.vehicle.spec_aiFieldWorker spec.isActive = true - self.vehicle:raiseAIEvent("onAIFieldWorkerStart", "onAIImplementStart") if self.isServer then self.vehicle:updateAIFieldWorkerImplementData() - if self.vehicle:getAINeedsTrafficCollisionBox() and (AIFieldWorker.TRAFFIC_COLLISION ~= nil and + if self.vehicle:getAINeedsTrafficCollisionBox() and (AIFieldWorker.TRAFFIC_COLLISION ~= nil and (AIFieldWorker.TRAFFIC_COLLISION ~= 0 and spec.aiTrafficCollision == nil)) then spec.aiTrafficCollision = clone(AIFieldWorker.TRAFFIC_COLLISION, true, false, true) end + self.vehicle:raiseAIEvent("onAIFieldWorkerStart", "onAIImplementStart") local cpSpec = self.vehicle.spec_cpAIFieldWorker --- Remembers the last lane offset setting value that was used. cpSpec.cpJobStartAtLastWp:getCpJobParameters().laneOffset:setValue(self.job:getCpJobParameters().laneOffset:getValue())