Skip to main content
Skip to main content

AIJobConveyor

AIJobConveyor

Parent

AIJob

Functions

applyCurrentState

Description

Definition

applyCurrentState()

Arguments

anyvehicle
anymission
anyfarmId
anyisDirectStart

Code

function AIJobConveyor:applyCurrentState(vehicle, mission, farmId, isDirectStart)
AIJobConveyor:superClass().applyCurrentState( self , vehicle, mission, farmId, isDirectStart)

self.vehicleParameter:setVehicle(vehicle)
end

getIsAvailableForVehicle

Description

Definition

getIsAvailableForVehicle()

Arguments

anyvehicle

Code

function AIJobConveyor:getIsAvailableForVehicle(vehicle)
return vehicle.spec_aiConveyorBelt ~ = nil and vehicle:getCanStartAIVehicle() and vehicle:getIsAIJobSupported(ClassUtil.getClassNameByObject( self ))
end

getIsStartable

Description

Definition

getIsStartable()

Arguments

anyconnection

Code

function AIJobConveyor:getIsStartable(connection)
if g_currentMission.aiSystem:getAILimitedReached() then
return false , AIJobConveyor.START_ERROR_LIMIT_REACHED
end

local vehicle = self.vehicleParameter:getVehicle()
if vehicle = = nil then
return false , AIJobConveyor.START_ERROR_VEHICLE_DELETED
end

if not g_currentMission:getHasPlayerPermission( "hireAssistant" , connection, vehicle:getOwnerFarmId()) then
return false , AIJobConveyor.START_ERROR_NO_PERMISSION
end

if vehicle:getIsInUse(connection) then
return false , AIJobConveyor.START_ERROR_VEHICLE_IN_USE
end

return true , AIJob.START_SUCCESS
end

getIsStartErrorText

Description

Definition

getIsStartErrorText()

Arguments

anystate

Code

function AIJobConveyor.getIsStartErrorText(state)
if state = = AIJobConveyor.START_ERROR_LIMIT_REACHED then
return g_i18n:getText( "ai_startStateLimitReached" )
elseif state = = AIJobConveyor.START_ERROR_VEHICLE_DELETED then
return g_i18n:getText( "ai_startStateVehicleDeleted" )
elseif state = = AIJobConveyor.START_ERROR_NO_PERMISSION then
return g_i18n:getText( "ai_startStateNoPermission" )
elseif state = = AIJobConveyor.START_ERROR_VEHICLE_IN_USE then
return g_i18n:getText( "ai_startStateVehicleInUse" )
end

return g_i18n:getText( "ai_startStateSuccess" )
end

getPricePerMs

Description

Definition

getPricePerMs()

Code

function AIJobConveyor:getPricePerMs()
return 0.00005
end

getTitle

Description

Definition

getTitle()

Code

function AIJobConveyor:getTitle()
local vehicle = self.vehicleParameter:getVehicle()
if vehicle ~ = nil then
return vehicle:getName()
end

return ""
end

new

Description

Definition

new()

Arguments

anyisServer
anycustomMt

Code

function AIJobConveyor.new(isServer, customMt)
local self = AIJob.new(isServer, customMt or AIJobConveyor _mt)

self.conveyorTask = AITaskConveyor.new(isServer, self )

self:addTask( self.conveyorTask)

self.vehicleParameter = AIParameterVehicle.new()

self:addNamedParameter( "vehicle" , self.vehicleParameter)

local vehicleGroup = AIParameterGroup.new(g_i18n:getText( "ai_parameterGroupTitleVehicle" ))
vehicleGroup:addParameter( self.vehicleParameter)

table.insert( self.groupedParameters, vehicleGroup)

return self
end

setValues

Description

Definition

setValues()

Code

function AIJobConveyor:setValues()
self:resetTasks()

self.conveyorTask:setVehicle( self.vehicleParameter:getVehicle())
end

start

Description

Definition

start()

Arguments

anyfarmId

Code

function AIJobConveyor:start(farmId)
AIJobConveyor:superClass().start( self , farmId)

-- Client start notification will be done by vehicle
if self.isServer then
local vehicle = self.vehicleParameter:getVehicle()
vehicle:aiJobStarted( self , self.helperIndex, farmId)
end
end

stop

Description

Definition

stop()

Arguments

anyaiMessage

Code

function AIJobConveyor:stop(aiMessage)
-- Client stop notifcation will be done by vehicle
if self.isServer then
local vehicle = self.vehicleParameter:getVehicle()
vehicle:aiJobFinished()
end

AIJobConveyor:superClass().stop( self , aiMessage)
end

validate

Description

Definition

validate()

Arguments

anyfarmId

Code

function AIJobConveyor:validate(farmId)
self:setParameterValid( true )

local isValid, errorMessage = self.vehicleParameter:validate( false )
if not isValid then
self.vehicleParameter:setIsValid( false )
end

return isValid, errorMessage
end