LUADOC - Farming Simulator 19

GameplayHintManager

Description
This class handles all basic functionality for map loading gamehints
Parent
AbstractManager
Functions

getRandomGameplayHint

Description
Gets random gamplay hints
Definition
getRandomGameplayHint(integer numHints)
Arguments
integernumHintsnumber of hints
Return Values
tablegameplayHintGroupa random gameplay hint group
Code
68function GameplayHintManager:getRandomGameplayHint(numberOfHints)
69 local hints = {}
70 local addedHints = {}
71
72 -- Prevent infinite lookup loop by checking the number of hints
73 if #self.gameplayHints <= numberOfHints then
74 return self.gameplayHints
75 end
76
77 local numHints = #self.gameplayHints
78 while #hints < numberOfHints do
79 local hintId = math.random(1, numHints)
80 if addedHints[hintId] == nil then
81 table.insert(hints, self.gameplayHints[hintId])
82 addedHints[hintId] = hintId
83 end
84 end
85
86 return hints
87end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
24function GameplayHintManager:initDataStructures()
25 self.gameplayHints = {}
26 self.isLoaded = false
27end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
32function GameplayHintManager:loadMapData(xmlFile, missionInfo)
33 GameplayHintManager:superClass().loadMapData(self)
34
35 local filename = Utils.getFilename(getXMLString(xmlFile, "map.gameplayHints#filename"), g_currentMission.baseDirectory)
36 if filename == nil or filename == "" then
37 print("Error: Could not load gameplayHint config file '"..tostring(filename).."'!")
38 return false
39 end
40
41 local gameplayHintXmlFile = loadXMLFile("gameplayHints", filename)
42 local i = 0
43 while true do
44 local key = string.format("gameplayHints.gameplayHint(%d)", i)
45 if not hasXMLProperty(gameplayHintXmlFile, key) then
46 break
47 end
48
49 local text = getXMLString(gameplayHintXmlFile, key)
50 if text:sub(1,6) == "$l10n_" then
51 text = g_i18n:getText(text:sub(7), missionInfo.customEnvironment)
52 end
53 table.insert(self.gameplayHints, text)
54
55 i = i + 1
56 end
57 delete(gameplayHintXmlFile)
58
59 self.isLoaded = true
60
61 return true
62end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
16function GameplayHintManager:new(customMt)
17 local self = AbstractManager:new(customMt or GameplayHintManager_mt)
18
19 return self
20end