LUADOC - Farming Simulator 19

Script v1.7.1.0

Engine v1.7.1.0

Foundation Reference

PlayerModelManager

Description
This class handles player models
Functions

addPlayerModel

Description
Adds a new player
Definition
addPlayerModel(string name, string xmlFilename, string description, string baseDir)
Arguments
stringnameindex name
stringxmlFilenamexml filename
stringdescriptiondescription
stringbaseDirthe base directory
Return Values
booleantrueif added successful else false
Code
108function PlayerModelManager:addPlayerModel(name, xmlFilename, description, genderId)
109 if not ClassUtil.getIsValidIndexName(name) then
110 g_logManager:devWarning("Warning: '%s' is not a valid name for a player. Ignoring it!", tostring(name))
111 return nil
112 end
113 if xmlFilename == nil or xmlFilename == "" then
114 g_logManager:devWarning("Warning: Config xmlFilename is missing for player '%s'. Ignoring it!", tostring(name))
115 return nil
116 end
117
118 name = name:upper()
119
120 if self.nameToPlayerModel[name] == nil then
121 local numPlayerModels = #self.playerModels + 1
122 local playerModel = {}
123
124 playerModel.name = name
125 playerModel.index = numPlayerModels
126 playerModel.xmlFilename = Utils.getFilename(xmlFilename, nil)
127 playerModel.description = description
128 playerModel.genderId = genderId
129 table.insert(self.playerModels, playerModel)
130 self.nameToPlayerModel[name] = playerModel
131 self.nameToIndex[name] = numPlayerModels
132 return playerModel
133 else
134 g_logManager:devWarning("Warning: Player '%s' already exists. Ignoring it!", tostring(name))
135 end
136
137 return nil
138end

getNumOfPlayerModels

Description
Gets number of available player models
Definition
getNumOfPlayerModels()
Return Values
integernumbernumber of models
Code
166function PlayerModelManager:getNumOfPlayerModels()
167 return #self.playerModels
168end

getPlayerByName

Description
Gets a player by index name
Definition
getPlayerByName(string name)
Arguments
stringnamethe player index name
Return Values
tableplayerthe player object
Code
155function PlayerModelManager:getPlayerByName(name)
156 if name ~= nil then
157 name = name:upper()
158 return self.nameToPlayerModel[name]
159 end
160 return nil
161end

getPlayerModelByIndex

Description
Gets a player by index
Definition
getPlayerModelByIndex(integer index)
Arguments
integerindexthe player index
Return Values
tableplayerthe player object
Code
144function PlayerModelManager:getPlayerModelByIndex(index)
145 if index ~= nil then
146 return self.playerModels[index]
147 end
148 return nil
149end

initDataStructures

Description
Initialize data structures
Definition
initDataStructures()
Code
36function PlayerModelManager:initDataStructures()
37 self.playerModels = {}
38 self.nameToPlayerModel = {}
39 self.nameToIndex = {}
40end

load

Description
Loads initial manager
Definition
load()
Return Values
booleantrueif loading was successful else false
Code
45function PlayerModelManager:load(xmlFilename)
46 local result = false
47 if xmlFilename ~= nil and xmlFilename ~= "" then
48 local xmlFile = loadXMLFile("TempXML", xmlFilename)
49 if xmlFile ~= nil and xmlFile ~= 0 then
50 local i = 0
51
52 while true do
53 local baseKey = "playerModels.playerModel"
54 local XMLFilenameKey = string.format("%s(%d)#xmlFilename", baseKey, i)
55 local genderKey = string.format("%s(%d)#gender", baseKey, i)
56 local defaultNameKey = string.format("%s(%d)#defaultName", baseKey, i)
57 local descKey = string.format("%s(%d)#desc", baseKey, i)
58
59 if not hasXMLProperty(xmlFile, XMLFilenameKey) or not hasXMLProperty(xmlFile, genderKey) or not hasXMLProperty(xmlFile, defaultNameKey) or not hasXMLProperty(xmlFile, descKey) then
60 break
61 end
62 local modelXMLFilename = getXMLString(xmlFile, XMLFilenameKey)
63 local modelGender = getXMLString(xmlFile, genderKey)
64 local modelDefaultName = getXMLString(xmlFile, defaultNameKey)
65 local modelDesc = getXMLString(xmlFile, descKey)
66
67 local modelGenderId = PlayerModelManager.GENDERS.GENDER_NONE
68 modelGender = modelGender:upper()
69 if modelGender == "FEMALE" then
70 modelGenderId = PlayerModelManager.GENDERS.GENDER_FEMALE
71 else
72 modelGenderId = PlayerModelManager.GENDERS.GENDER_MALE
73 end
74 if self:addPlayerModel(modelDefaultName, modelXMLFilename, modelDesc, modelGenderId) ~= nil then
75 result = true
76 end
77 i = i + 1
78 end
79 delete(xmlFile)
80 else
81 print(string.format("Warning: Cannot open xmlFilename('%s') is missing for player model manager.", tostring(xmlFilename)))
82 end
83 else
84 print(string.format("Warning: Config xmlFilename('%s') is missing for player model manager.", tostring(xmlFilename)))
85 end
86 return result
87end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
92function PlayerModelManager:loadMapData(xmlFile)
93 return true
94end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
25function PlayerModelManager:new(customMt)
26 local self = {}
27 setmetatable(self, customMt or PlayerModelManager_mt)
28
29 self:initDataStructures()
30
31 return self
32end

unloadMapData

Description
Unload data on mission delete
Definition
unloadMapData()
Code
98function PlayerModelManager:unloadMapData()
99end