LUADOC - Farming Simulator 22

AIJobConveyor

Parent
AIJob
Functions

applyCurrentState

Description
Definition
applyCurrentState()
Code
73function AIJobConveyor:applyCurrentState(vehicle, mission, farmId, isDirectStart)
74 AIJobConveyor:superClass().applyCurrentState(self, vehicle, mission, farmId, isDirectStart)
75
76 self.vehicleParameter:setVehicle(vehicle)
77end

getIsAvailableForVehicle

Description
Definition
getIsAvailableForVehicle()
Code
81function AIJobConveyor:getIsAvailableForVehicle(vehicle)
82 return vehicle.spec_aiConveyorBelt ~= nil and vehicle:getCanStartAIVehicle()
83end

getIsStartable

Description
Definition
getIsStartable()
Code
119function AIJobConveyor:getIsStartable(connection)
120 if g_currentMission.aiSystem:getAILimitedReached() then
121 return false, AIJobConveyor.START_ERROR_LIMIT_REACHED
122 end
123
124 local vehicle = self.vehicleParameter:getVehicle()
125 if vehicle == nil then
126 return false, AIJobConveyor.START_ERROR_VEHICLE_DELETED
127 end
128
129 if not g_currentMission:getHasPlayerPermission("hireAssistant", connection, vehicle:getOwnerFarmId()) then
130 return false, AIJobConveyor.START_ERROR_NO_PERMISSION
131 end
132
133 if vehicle:getIsInUse(connection) then
134 return false, AIJobConveyor.START_ERROR_VEHICLE_IN_USE
135 end
136
137 return true, AIJob.START_SUCCESS
138end

getIsStartErrorText

Description
Definition
getIsStartErrorText()
Code
142function AIJobConveyor.getIsStartErrorText(state)
143 if state == AIJobConveyor.START_ERROR_LIMIT_REACHED then
144 return g_i18n:getText("ai_startStateLimitReached")
145 elseif state == AIJobConveyor.START_ERROR_VEHICLE_DELETED then
146 return g_i18n:getText("ai_startStateVehicleDeleted")
147 elseif state == AIJobConveyor.START_ERROR_NO_PERMISSION then
148 return g_i18n:getText("ai_startStateNoPermission")
149 elseif state == AIJobConveyor.START_ERROR_VEHICLE_IN_USE then
150 return g_i18n:getText("ai_startStateVehicleInUse")
151 end
152
153 return g_i18n:getText("ai_startStateSuccess")
154end

getPricePerMs

Description
Definition
getPricePerMs()
Code
43function AIJobConveyor:getPricePerMs()
44 return 0.00005
45end

getTitle

Description
Definition
getTitle()
Code
87function AIJobConveyor:getTitle()
88 local vehicle = self.vehicleParameter:getVehicle()
89 if vehicle ~= nil then
90 return vehicle:getName()
91 end
92
93 return ""
94end

new

Description
Definition
new()
Code
22function AIJobConveyor.new(isServer, customMt)
23 local self = AIJob.new(isServer, customMt or AIJobConveyor_mt)
24
25 self.conveyorTask = AITaskConveyor.new(isServer, self)
26
27 self:addTask(self.conveyorTask)
28
29 self.vehicleParameter = AIParameterVehicle.new()
30
31 self:addNamedParameter("vehicle", self.vehicleParameter)
32
33 local vehicleGroup = AIParameterGroup.new(g_i18n:getText("ai_parameterGroupTitleVehicle"))
34 vehicleGroup:addParameter(self.vehicleParameter)
35
36 table.insert(self.groupedParameters, vehicleGroup)
37
38 return self
39end

setValues

Description
Definition
setValues()
Code
98function AIJobConveyor:setValues()
99 self:resetTasks()
100
101 self.conveyorTask:setVehicle(self.vehicleParameter:getVehicle())
102end

start

Description
Definition
start()
Code
49function AIJobConveyor:start(farmId)
50 AIJobConveyor:superClass().start(self, farmId)
51
52 -- Client start notification will be done by vehicle
53 if self.isServer then
54 local vehicle = self.vehicleParameter:getVehicle()
55 vehicle:aiJobStarted(self, self.helperIndex, farmId)
56 end
57end

stop

Description
Definition
stop()
Code
61function AIJobConveyor:stop(aiMessage)
62 -- Client stop notifcation will be done by vehicle
63 if self.isServer then
64 local vehicle = self.vehicleParameter:getVehicle()
65 vehicle:aiJobFinished()
66 end
67
68 AIJobConveyor:superClass().stop(self, aiMessage)
69end

validate

Description
Definition
validate()
Code
106function AIJobConveyor:validate(farmId)
107 self:setParamterValid(true)
108
109 local isValid, errorMessage = self.vehicleParameter:validate(false)
110 if not isValid then
111 self.vehicleParameter:setIsValid(false)
112 end
113
114 return isValid, errorMessage
115end