LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

AIJobTypeManager

Description
This class handles all npcs
Functions

createJob

Description
Definition
createJob()
Code
92function AIJobTypeManager:createJob(typeIndex)
93 if typeIndex == nil then
94 return nil
95 end
96
97 local jobType = self.jobTypes[typeIndex]
98 if jobType == nil then
99 return nil
100 end
101
102 local job = jobType.classObject.new(self.isServer)
103 job.jobTypeIndex = typeIndex
104
105 return job
106end

delete

Description
Definition
delete()
Code
44function AIJobTypeManager:delete()
45 self.jobTypes = {}
46 self.nameToIndex = {}
47 self.classObjectToIndex = {}
48 AIJobType = self.nameToIndex
49end

getJobTypeByIndex

Description
Definition
getJobTypeByIndex()
Code
110function AIJobTypeManager:getJobTypeByIndex(index)
111 return self.jobTypes[index]
112end

getJobTypeIndex

Description
Definition
getJobTypeIndex()
Code
81function AIJobTypeManager:getJobTypeIndex(job)
82 local classObject = ClassUtil.getClassObjectByObject(job)
83 if classObject == nil then
84 return nil
85 end
86
87 return self.classObjectToIndex[classObject]
88end

getJobTypeIndexByName

Description
Definition
getJobTypeIndexByName()
Code
116function AIJobTypeManager:getJobTypeIndexByName(name)
117 if name == nil then
118 return nil
119 end
120
121 name = name:upper()
122
123 return self.nameToIndex[name]
124end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
29function AIJobTypeManager:loadMapData(xmlFile, missionInfo, baseDirectory)
30 self.jobTypes = {}
31 self.nameToIndex = {}
32 self.classObjectToIndex = {}
33 AIJobType = self.nameToIndex
34
35 self:registerJobType("GOTO", "$l10n_ai_jobTitleGoto", AIJobGoTo)
36 self:registerJobType("FIELDWORK", "$l10n_ai_jobTitleFieldWork", AIJobFieldWork)
37 self:registerJobType("CONVEYOR", "$l10n_ai_jobTitleConveyor", AIJobConveyor)
38 self:registerJobType("DELIVER", "$l10n_ai_jobTitleDeliver", AIJobDeliver)
39 self:registerJobType("LOAD_AND_DELIVER", "$l10n_ai_jobTitleLoadAndDeliver", AIJobLoadAndDeliver)
40end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
18function AIJobTypeManager.new(isServer, customMt)
19 local self = setmetatable({}, customMt or AIJobTypeManager_mt)
20
21 self.isServer = isServer
22
23 return self
24end

registerJobType

Description
Definition
registerJobType()
Code
53function AIJobTypeManager:registerJobType(name, title, classObject)
54 if not ClassUtil.getIsValidIndexName(name) then
55 Logging.warning("'%s' is not a valid name for a ai job type!", tostring(name))
56 return nil
57 end
58
59 name = name:upper()
60
61 if self.nameToIndex[name] ~= nil then
62 Logging.warning("AI job type '%s' already exists!", tostring(name))
63 return nil
64 end
65
66 local jobType = {}
67 jobType.name = name
68 jobType.title = g_i18n:convertText(title)
69 jobType.classObject = classObject
70 jobType.index = #self.jobTypes + 1
71
72 table.insert(self.jobTypes, jobType)
73 self.nameToIndex[name] = jobType.index
74 self.classObjectToIndex[classObject] = jobType.index
75
76 return jobType
77end