Script v1_7_1_0
- AI
- AIDriveStrategy
- AIDriveStrategyBaler
- AIDriveStrategyCollision
- AIDriveStrategyCombine
- AIDriveStrategyConveyor
- AIDriveStrategyStonePicke...
- AIDriveStrategyStraight
- AIJobTypeManager
- AISystem
- AITurnStrategy
- AITurnStrategyBulb1
- AITurnStrategyBulb1Revers...
- AITurnStrategyBulb2
- AITurnStrategyBulb2Revers...
- AITurnStrategyBulb3
- AITurnStrategyBulb3Revers...
- AITurnStrategyDefault
- AITurnStrategyDefaultReve...
- AITurnStrategyHalfCircle
- AITurnStrategyHalfCircleR...
- HelperManager
- NPCManager
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
AIJobTypeManager
DescriptionThis class handles all npcsFunctions
createJob
DescriptionDefinitioncreateJob()Code
92 | function 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 |
106 | end |
delete
DescriptionDefinitiondelete()Code
44 | function AIJobTypeManager:delete() |
45 | self.jobTypes = {} |
46 | self.nameToIndex = {} |
47 | self.classObjectToIndex = {} |
48 | AIJobType = self.nameToIndex |
49 | end |
getJobTypeByIndex
DescriptionDefinitiongetJobTypeByIndex()Code
110 | function AIJobTypeManager:getJobTypeByIndex(index) |
111 | return self.jobTypes[index] |
112 | end |
getJobTypeIndex
DescriptionDefinitiongetJobTypeIndex()Code
81 | function 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] |
88 | end |
getJobTypeIndexByName
DescriptionDefinitiongetJobTypeIndexByName()Code
116 | function AIJobTypeManager:getJobTypeIndexByName(name) |
117 | if name == nil then |
118 | return nil |
119 | end |
120 | |
121 | name = name:upper() |
122 | |
123 | return self.nameToIndex[name] |
124 | end |
loadMapData
DescriptionLoad data on map loadDefinition
loadMapData()Return Values
boolean | true | if loading was successful else false |
29 | function 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) |
40 | end |
new
DescriptionCreating managerDefinition
new()Return Values
table | instance | instance of object |
18 | function AIJobTypeManager.new(isServer, customMt) |
19 | local self = setmetatable({}, customMt or AIJobTypeManager_mt) |
20 | |
21 | self.isServer = isServer |
22 | |
23 | return self |
24 | end |
registerJobType
DescriptionDefinitionregisterJobType()Code
53 | function 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 |
77 | end |