LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

HelperManager

Description
This class handles all helpers
Parent
AbstractManager
Functions

addHelper

Description
Adds a new helper
Definition
addHelper(string name, string modelFilename, string baseDir)
Arguments
stringnamehelper index name
stringmodelFilenamehelper model filename
stringbaseDirthe base directory
Return Values
booleantrueif added successful else false
Code
79function 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
125end

getHelperByIndex

Description
Gets a helper by index
Definition
getHelperByIndex(integer index)
Arguments
integerindexthe helper index
Return Values
tablehelperthe helper object
Code
152function HelperManager:getHelperByIndex(index)
153 if index ~= nil then
154 return self.indexToHelper[index]
155 end
156 return nil
157end

getHelperByName

Description
Gets a helper by index name
Definition
getHelperByName(string name)
Arguments
stringnamethe helper index name
Return Values
tablehelperthe helper object
Code
163function HelperManager:getHelperByName(name)
164 if name ~= nil then
165 name = name:upper()
166 return self.helpers[name]
167 end
168 return nil
169end

getNumOfHelpers

Description
Gets number of helpers
Definition
getNumOfHelpers()
Return Values
integernumOfHelperstotal number of helpers
Code
195function HelperManager:getNumOfHelpers()
196 return self.numHelpers
197end

getRandomHelper

Description
Gets a random helper
Definition
getRandomHelper()
Return Values
tablehelpera random helper object
Code
130function HelperManager:getRandomHelper()
131 return self.availableHelpers[math.random(1, #self.availableHelpers)]
132end

getRandomHelperModel

Description
Gets a random helper
Definition
getRandomHelperModel()
Return Values
tablehelpera random helper object
Code
137function HelperManager:getRandomHelperModel()
138 return self.indexToHelper[math.random(1, self.numHelpers)].modelFilename
139end

getRandomIndex

Description
Gets a random helper index
Definition
getRandomIndex()
Return Values
integerhelperIndexa random helper index
Code
144function HelperManager:getRandomIndex()
145 return math.random(1, self.numHelpers)
146end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
23function HelperManager:initDataStructures()
24 self.numHelpers = 0
25 self.helpers = {}
26 self.nameToIndex = {}
27 self.indexToHelper = {}
28 self.availableHelpers = {}
29end

loadDefaultTypes

Description
Definition
loadDefaultTypes()
Code
33function HelperManager:loadDefaultTypes(missionInfo, baseDirectory)
34 local xmlFile = loadXMLFile("helpers", "data/maps/maps_helpers.xml")
35 self:loadHelpers(xmlFile, missionInfo, baseDirectory, true)
36 delete(xmlFile)
37end

loadHelpers

Description
Load data on map load
Definition
loadHelpers()
Return Values
booleantrueif loading was successful else false
Code
52function 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
71end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
42function 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)
47end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
16function HelperManager.new(customMt)
17 local self = AbstractManager.new(customMt or HelperManager_mt)
18 return self
19end

releaseHelper

Description
Marks a helper as 'not in use'
Definition
releaseHelper(table helper)
Arguments
tablehelperthe helper object
Code
188function HelperManager:releaseHelper(helper)
189 table.insert(self.availableHelpers, helper)
190end

useHelper

Description
Marks a helper as 'in use'
Definition
useHelper(table helper)
Arguments
tablehelperthe helper object
Return Values
booleansuccesstrue if helper is marked else false
Code
175function 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
183end