LUADOC - Farming Simulator 22

CharacterModelManager

Description
This class handles player models
Functions

addPlayerModel

Description
Adds a new player
Definition
addPlayerModel()
Return Values
booleantrueif added successful else false
Code
73function CharacterModelManager:addPlayerModel(name, xmlFilename, isMale)
74 if not ClassUtil.getIsValidIndexName(name) then
75 Logging.devWarning("Warning: '%s' is not a valid name for a player. Ignoring it!", tostring(name))
76 return nil
77 end
78 if xmlFilename == nil or xmlFilename == "" then
79 Logging.devWarning("Warning: Config xmlFilename is missing for player '%s'. Ignoring it!", tostring(name))
80 return nil
81 end
82
83 name = name:upper()
84
85 if self.nameToPlayerModel[name] == nil then
86 local numPlayerModels = #self.playerModels + 1
87 local model = {}
88
89 model.name = name
90 model.index = numPlayerModels
91 model.xmlFilename = Utils.getFilename(xmlFilename, nil)
92 model.isMale = isMale
93
94 table.insert(self.playerModels, model)
95
96 self.nameToPlayerModel[name] = model
97 self.nameToIndex[name] = numPlayerModels
98
99 return model
100 else
101 Logging.devWarning("Warning: Player '%s' already exists. Ignoring it!", tostring(name))
102 end
103
104 return nil
105end

getNumOfPlayerModels

Description
Gets number of available player models
Definition
getNumOfPlayerModels()
Return Values
integernumbernumber of models
Code
133function CharacterModelManager:getNumOfPlayerModels()
134 return #self.playerModels
135end

getPlayerByName

Description
Gets a player by index name
Definition
getPlayerByName(string name)
Arguments
stringnamethe player index name
Return Values
tableplayerthe player object
Code
122function CharacterModelManager:getPlayerByName(name)
123 if name ~= nil then
124 name = name:upper()
125 return self.nameToPlayerModel[name]
126 end
127 return nil
128end

getPlayerModelByIndex

Description
Gets a player by index
Definition
getPlayerModelByIndex(integer index)
Arguments
integerindexthe player index
Return Values
tableplayerthe player object
Code
111function CharacterModelManager:getPlayerModelByIndex(index)
112 if index ~= nil then
113 return self.playerModels[index]
114 end
115 return nil
116end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
28function CharacterModelManager:initDataStructures()
29 self.playerModels = {}
30 self.nameToPlayerModel = {}
31 self.nameToIndex = {}
32end

load

Description
Loads initial manager
Definition
load()
Return Values
booleantrueif loading was successful else false
Code
37function CharacterModelManager:load(xmlFilename)
38 local xmlFile = XMLFile.load("playerModels", xmlFilename)
39 if xmlFile == nil then
40 Logging.fatal("Could not load player model list at %s", xmlFilename)
41 end
42
43 xmlFile:iterate("playerModels.playerModel", function(index, key)
44 local filename = xmlFile:getString(key .. "#filename")
45 local name = xmlFile:getString(key .. "#name")
46 local isMale = xmlFile:getBool(key .. "#isMale") or false
47
48 if filename == nil or name == nil then
49 return
50 end
51
52 self:addPlayerModel(name, filename, isMale)
53 end)
54
55 xmlFile:delete()
56end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
61function CharacterModelManager:loadMapData(xmlFile)
62 return true
63end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
18function CharacterModelManager.new(customMt)
19 local self = setmetatable({}, customMt or CharacterModelManager_mt)
20
21 self:initDataStructures()
22
23 return self
24end

unloadMapData

Description
Unload data on mission delete
Definition
unloadMapData()
Code
67function CharacterModelManager:unloadMapData()
68end