Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
CharacterModelManager
DescriptionThis class handles player modelsFunctions
- addPlayerModel
- getNumOfPlayerModels
- getPlayerByName
- getPlayerModelByIndex
- initDataStructures
- load
- loadMapData
- new
- unloadMapData
addPlayerModel
DescriptionAdds a new playerDefinition
addPlayerModel()Return Values
boolean | true | if added successful else false |
73 | function 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 |
105 | end |
getNumOfPlayerModels
DescriptionGets number of available player modelsDefinition
getNumOfPlayerModels()Return Values
integer | number | number of models |
133 | function CharacterModelManager:getNumOfPlayerModels() |
134 | return #self.playerModels |
135 | end |
getPlayerByName
DescriptionGets a player by index nameDefinition
getPlayerByName(string name)Arguments
string | name | the player index name |
table | player | the player object |
122 | function CharacterModelManager:getPlayerByName(name) |
123 | if name ~= nil then |
124 | name = name:upper() |
125 | return self.nameToPlayerModel[name] |
126 | end |
127 | return nil |
128 | end |
getPlayerModelByIndex
DescriptionGets a player by indexDefinition
getPlayerModelByIndex(integer index)Arguments
integer | index | the player index |
table | player | the player object |
111 | function CharacterModelManager:getPlayerModelByIndex(index) |
112 | if index ~= nil then |
113 | return self.playerModels[index] |
114 | end |
115 | return nil |
116 | end |
initDataStructures
DescriptionInitialize data structuresDefinition
initDataStructures()Code
28 | function CharacterModelManager:initDataStructures() |
29 | self.playerModels = {} |
30 | self.nameToPlayerModel = {} |
31 | self.nameToIndex = {} |
32 | end |
load
DescriptionLoads initial managerDefinition
load()Return Values
boolean | true | if loading was successful else false |
37 | function 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() |
56 | end |
loadMapData
DescriptionLoad data on map loadDefinition
loadMapData()Return Values
boolean | true | if loading was successful else false |
61 | function CharacterModelManager:loadMapData(xmlFile) |
62 | return true |
63 | end |
new
DescriptionCreating managerDefinition
new()Return Values
table | instance | instance of object |
18 | function CharacterModelManager.new(customMt) |
19 | local self = setmetatable({}, customMt or CharacterModelManager_mt) |
20 | |
21 | self:initDataStructures() |
22 | |
23 | return self |
24 | end |
unloadMapData
DescriptionUnload data on mission deleteDefinition
unloadMapData()Code
67 | function CharacterModelManager:unloadMapData() |
68 | end |