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 diff --git a/scripts/ai/tasks/CpAITaskFieldWork.lua b/scripts/ai/tasks/CpAITaskFieldWork.lua index dc561d87c..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()) @@ -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) 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