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
HelperManager
DescriptionThis class handles all helpersParent
AbstractManagerFunctions
- addHelper
- getHelperByIndex
- getHelperByName
- getNumOfHelpers
- getRandomHelper
- getRandomHelperModel
- getRandomIndex
- initDataStructures
- loadDefaultTypes
- loadHelpers
- loadMapData
- new
- releaseHelper
- useHelper
addHelper
DescriptionAdds a new helperDefinition
addHelper(string name, string modelFilename, string baseDir)Arguments
string | name | helper index name |
string | modelFilename | helper model filename |
string | baseDir | the base directory |
boolean | true | if added successful else false |
79 | function HelperManager:addHelper(name, title, color, modelFilename, baseDir, isBaseType) |
80 | if not ClassUtil.getIsValidIndexName(name) then |
81 | print("Warning: '"..tostring(name).."' is not a valid name for a helper. Ignoring helper!") |
82 | return nil |
83 | end |
84 | |
85 | name = name:upper() |
86 | |
87 | if isBaseType and self.nameToIndex[name] ~= nil then |
88 | print("Warning: Helper '"..tostring(name).."' already exists. Ignoring helper!") |
89 | return nil |
90 | end |
91 | |
92 | local helper = self.helpers[name] |
93 | if helper == nil then |
94 | if modelFilename == nil or modelFilename == "" then |
95 | print("Warning: Missing helper config file for helper '"..tostring(name).."'. Ignoring helper!") |
96 | return nil |
97 | end |
98 | |
99 | self.numHelpers = self.numHelpers + 1 |
100 | |
101 | helper = {} |
102 | helper.name = name |
103 | helper.index = self.numHelpers |
104 | helper.color = color |
105 | helper.title = name |
106 | if title ~= nil then |
107 | helper.title = g_i18n:convertText(title) |
108 | end |
109 | helper.modelFilename = Utils.getFilename(modelFilename, baseDir) |
110 | |
111 | self.helpers[name] = helper |
112 | self.nameToIndex[name] = self.numHelpers |
113 | self.indexToHelper[self.numHelpers] = helper |
114 | table.insert(self.availableHelpers, helper) |
115 | else |
116 | if title ~= nil then |
117 | helper.title = g_i18n:convertText(title) |
118 | end |
119 | if modelFilename ~= nil then |
120 | helper.modelFilename = Utils.getFilename(modelFilename, baseDir) |
121 | end |
122 | end |
123 | |
124 | return helper |
125 | end |
getHelperByIndex
DescriptionGets a helper by indexDefinition
getHelperByIndex(integer index)Arguments
integer | index | the helper index |
table | helper | the helper object |
152 | function HelperManager:getHelperByIndex(index) |
153 | if index ~= nil then |
154 | return self.indexToHelper[index] |
155 | end |
156 | return nil |
157 | end |
getHelperByName
DescriptionGets a helper by index nameDefinition
getHelperByName(string name)Arguments
string | name | the helper index name |
table | helper | the helper object |
163 | function HelperManager:getHelperByName(name) |
164 | if name ~= nil then |
165 | name = name:upper() |
166 | return self.helpers[name] |
167 | end |
168 | return nil |
169 | end |
getNumOfHelpers
DescriptionGets number of helpersDefinition
getNumOfHelpers()Return Values
integer | numOfHelpers | total number of helpers |
195 | function HelperManager:getNumOfHelpers() |
196 | return self.numHelpers |
197 | end |
getRandomHelper
DescriptionGets a random helperDefinition
getRandomHelper()Return Values
table | helper | a random helper object |
130 | function HelperManager:getRandomHelper() |
131 | return self.availableHelpers[math.random(1, #self.availableHelpers)] |
132 | end |
getRandomHelperModel
DescriptionGets a random helperDefinition
getRandomHelperModel()Return Values
table | helper | a random helper object |
137 | function HelperManager:getRandomHelperModel() |
138 | return self.indexToHelper[math.random(1, self.numHelpers)].modelFilename |
139 | end |
getRandomIndex
DescriptionGets a random helper indexDefinition
getRandomIndex()Return Values
integer | helperIndex | a random helper index |
144 | function HelperManager:getRandomIndex() |
145 | return math.random(1, self.numHelpers) |
146 | end |
initDataStructures
DescriptionInitialize data structuresDefinition
initDataStructures()Code
23 | function HelperManager:initDataStructures() |
24 | self.numHelpers = 0 |
25 | self.helpers = {} |
26 | self.nameToIndex = {} |
27 | self.indexToHelper = {} |
28 | self.availableHelpers = {} |
29 | end |
loadDefaultTypes
DescriptionDefinitionloadDefaultTypes()Code
33 | function HelperManager:loadDefaultTypes(missionInfo, baseDirectory) |
34 | local xmlFile = loadXMLFile("helpers", "data/maps/maps_helpers.xml") |
35 | self:loadHelpers(xmlFile, missionInfo, baseDirectory, true) |
36 | delete(xmlFile) |
37 | end |
loadHelpers
DescriptionLoad data on map loadDefinition
loadHelpers()Return Values
boolean | true | if loading was successful else false |
52 | function HelperManager:loadHelpers(xmlFile, missionInfo, baseDirectory, isBaseType) |
53 | local i = 0 |
54 | while true do |
55 | local key = string.format("map.helpers.helper(%d)", i) |
56 | if not hasXMLProperty(xmlFile, key) then |
57 | break |
58 | end |
59 | |
60 | local name = getXMLString(xmlFile, key.."#name") |
61 | local title = getXMLString(xmlFile, key.."#title") |
62 | local modelFilename = getXMLString(xmlFile, key.."#modelFilename") |
63 | local color = string.getVectorN(getXMLString(xmlFile, key.."#color"), 3) or {1, 1, 1} |
64 | |
65 | self:addHelper(name, title, color, modelFilename, baseDirectory, isBaseType) |
66 | |
67 | i = i + 1 |
68 | end |
69 | |
70 | return true |
71 | end |
loadMapData
DescriptionLoad data on map loadDefinition
loadMapData()Return Values
boolean | true | if loading was successful else false |
42 | function HelperManager:loadMapData(xmlFile, missionInfo, baseDirectory) |
43 | HelperManager:superClass().loadMapData(self) |
44 | |
45 | self:loadDefaultTypes() |
46 | return XMLUtil.loadDataFromMapXML(xmlFile, "helpers", baseDirectory, self, self.loadHelpers, missionInfo, baseDirectory) |
47 | end |
new
DescriptionCreating managerDefinition
new()Return Values
table | instance | instance of object |
16 | function HelperManager.new(customMt) |
17 | local self = AbstractManager.new(customMt or HelperManager_mt) |
18 | return self |
19 | end |
releaseHelper
DescriptionMarks a helper as 'not in use'Definition
releaseHelper(table helper)Arguments
table | helper | the helper object |
188 | function HelperManager:releaseHelper(helper) |
189 | table.insert(self.availableHelpers, helper) |
190 | end |
useHelper
DescriptionMarks a helper as 'in use'Definition
useHelper(table helper)Arguments
table | helper | the helper object |
boolean | success | true if helper is marked else false |
175 | function HelperManager:useHelper(helper) |
176 | for k, h in pairs(self.availableHelpers) do |
177 | if h == helper then |
178 | table.remove(self.availableHelpers, k) |
179 | return true |
180 | end |
181 | end |
182 | return false |
183 | end |