Script v1.7.1.0
- AI
- AIDriveStrategy
- AIDriveStrategyBaler
- AIDriveStrategyCollision
- AIDriveStrategyCombine
- AIDriveStrategyConveyor
- AIDriveStrategyStraight
- AITurnStrategy
- AITurnStrategyBulb1
- AITurnStrategyBulb1Revers...
- AITurnStrategyBulb2
- AITurnStrategyBulb2Revers...
- AITurnStrategyBulb3
- AITurnStrategyBulb3Revers...
- AITurnStrategyDefault
- AITurnStrategyDefaultReve...
- AITurnStrategyHalfCircle
- AITurnStrategyHalfCircleR...
- HelperManager
- NPCManager
- Animals
- Contracts
- Debug
- Economy
- Effects
- Events
- Farms
- GUI
- Handtools
- I3d
- Materials
- Misc
- Objects
- Placeables
- Player
- Shop
- Sounds
- Specializations
- Triggers
- Utils
- Vehicles
- Weather
Engine v1.7.1.0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- XML
- general
Foundation Reference
HelperManager
DescriptionThis class handles all helpersParent
AbstractManagerFunctions
- addHelper
- getHelperByIndex
- getHelperByName
- getNumOfHelpers
- getRandomHelper
- getRandomIndex
- initDataStructures
- loadHelpers
- loadMapData
- new
- releaseHelper
- useHelper
addHelper
DescriptionAdds a new helperDefinition
addHelper(string name, string filename, string baseDir)Arguments
string | name | helper index name |
string | filename | helper config filename |
string | baseDir | the base directory |
boolean | true | if added successful else false |
76 | function HelperManager:addHelper(name, title, filename, baseDir, isBaseType) |
77 | if not ClassUtil.getIsValidIndexName(name) then |
78 | print("Warning: '"..tostring(name).."' is not a valid name for a helper. Ignoring helper!") |
79 | return nil |
80 | end |
81 | |
82 | name = name:upper() |
83 | |
84 | if isBaseType and self.nameToIndex[name] ~= nil then |
85 | print("Warning: Helper '"..tostring(name).."' already exists. Ignoring helper!") |
86 | return nil |
87 | end |
88 | |
89 | local helper = self.helpers[name] |
90 | if helper == nil then |
91 | if filename == nil or filename == "" then |
92 | print("Warning: Missing helper config file for helper '"..tostring(name).."'. Ignoring helper!") |
93 | return nil |
94 | end |
95 | |
96 | self.numHelpers = self.numHelpers + 1 |
97 | |
98 | helper = {} |
99 | helper.name = name |
100 | helper.index = self.numHelpers |
101 | helper.title = name |
102 | if title ~= nil then |
103 | helper.title = g_i18n:convertText(title) |
104 | end |
105 | helper.filename = Utils.getFilename(filename, baseDir) |
106 | |
107 | self.helpers[name] = helper |
108 | self.nameToIndex[name] = self.numHelpers |
109 | self.indexToHelper[self.numHelpers] = helper |
110 | table.insert(self.availableHelpers, helper) |
111 | else |
112 | if title ~= nil then |
113 | helper.title = g_i18n:convertText(title) |
114 | end |
115 | if filename ~= nil then |
116 | helper.filename = Utils.getFilename(filename, baseDir) |
117 | end |
118 | end |
119 | |
120 | return helper |
121 | end |
getHelperByIndex
DescriptionGets a helper by indexDefinition
getHelperByIndex(integer index)Arguments
integer | index | the helper index |
table | helper | the helper object |
141 | function HelperManager:getHelperByIndex(index) |
142 | if index ~= nil then |
143 | return self.indexToHelper[index] |
144 | end |
145 | return nil |
146 | end |
getHelperByName
DescriptionGets a helper by index nameDefinition
getHelperByName(string name)Arguments
string | name | the helper index name |
table | helper | the helper object |
152 | function HelperManager:getHelperByName(name) |
153 | if name ~= nil then |
154 | name = name:upper() |
155 | return self.helpers[name] |
156 | end |
157 | return nil |
158 | end |
getNumOfHelpers
DescriptionGets number of helpersDefinition
getNumOfHelpers()Return Values
integer | numOfHelpers | total number of helpers |
184 | function HelperManager:getNumOfHelpers() |
185 | return self.numHelpers |
186 | end |
getRandomHelper
DescriptionGets a random helperDefinition
getRandomHelper()Return Values
table | helper | a random helper object |
126 | function HelperManager:getRandomHelper() |
127 | return self.availableHelpers[math.random(1, #self.availableHelpers)] |
128 | end |
getRandomIndex
DescriptionGets a random helper indexDefinition
getRandomIndex()Return Values
integer | helperIndex | a random helper index |
133 | function HelperManager:getRandomIndex() |
134 | return math.random(1, self.numHelpers) |
135 | 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 |
loadHelpers
DescriptionLoad data on map loadDefinition
loadHelpers()Return Values
boolean | true | if loading was successful else false |
50 | function HelperManager:loadHelpers(xmlFile, missionInfo, baseDirectory, isBaseType) |
51 | local i = 0 |
52 | while true do |
53 | local key = string.format("map.helpers.helper(%d)", i) |
54 | if not hasXMLProperty(xmlFile, key) then |
55 | break |
56 | end |
57 | |
58 | local name = getXMLString(xmlFile, key.."#name") |
59 | local title = getXMLString(xmlFile, key.."#title") |
60 | local filename = getXMLString(xmlFile, key.."#filename") |
61 | |
62 | self:addHelper(name, title, filename, baseDirectory, isBaseType) |
63 | |
64 | i = i + 1 |
65 | end |
66 | |
67 | return true |
68 | end |
loadMapData
DescriptionLoad data on map loadDefinition
loadMapData()Return Values
boolean | true | if loading was successful else false |
40 | function HelperManager:loadMapData(xmlFile, missionInfo, baseDirectory) |
41 | HelperManager:superClass().loadMapData(self) |
42 | |
43 | self:loadDefaultTypes() |
44 | return XMLUtil.loadDataFromMapXML(xmlFile, "helpers", baseDirectory, self, self.loadHelpers, missionInfo, baseDirectory) |
45 | 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 |
177 | function HelperManager:releaseHelper(helper) |
178 | table.insert(self.availableHelpers, helper) |
179 | 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 |
164 | function HelperManager:useHelper(helper) |
165 | for k, h in pairs(self.availableHelpers) do |
166 | if h == helper then |
167 | table.remove(self.availableHelpers, k) |
168 | return true |
169 | end |
170 | end |
171 | return false |
172 | end |