LUADOC - Farming Simulator 19

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 filename, string baseDir)
Arguments
stringnamehelper index name
stringfilenamehelper config filename
stringbaseDirthe base directory
Return Values
booleantrueif added successful else false
Code
76function 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
121end

getHelperByIndex

Description
Gets a helper by index
Definition
getHelperByIndex(integer index)
Arguments
integerindexthe helper index
Return Values
tablehelperthe helper object
Code
141function HelperManager:getHelperByIndex(index)
142 if index ~= nil then
143 return self.indexToHelper[index]
144 end
145 return nil
146end

getHelperByName

Description
Gets a helper by index name
Definition
getHelperByName(string name)
Arguments
stringnamethe helper index name
Return Values
tablehelperthe helper object
Code
152function HelperManager:getHelperByName(name)
153 if name ~= nil then
154 name = name:upper()
155 return self.helpers[name]
156 end
157 return nil
158end

getNumOfHelpers

Description
Gets number of helpers
Definition
getNumOfHelpers()
Return Values
integernumOfHelperstotal number of helpers
Code
184function HelperManager:getNumOfHelpers()
185 return self.numHelpers
186end

getRandomHelper

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

getRandomIndex

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

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

loadHelpers

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

loadMapData

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

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
177function HelperManager:releaseHelper(helper)
178 table.insert(self.availableHelpers, helper)
179end

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
164function 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
172end