2010-01-22 21:03:14 +01:00
|
|
|
function PlayerManager() {}
|
|
|
|
|
2010-04-23 18:09:03 +02:00
|
|
|
PlayerManager.prototype.Schema =
|
|
|
|
"<a:component type='system'/><empty/>";
|
|
|
|
|
2010-01-22 21:03:14 +01:00
|
|
|
PlayerManager.prototype.Init = function()
|
|
|
|
{
|
|
|
|
this.playerEntities = []; // list of player entity IDs
|
|
|
|
};
|
|
|
|
|
|
|
|
PlayerManager.prototype.AddPlayer = function(ent)
|
|
|
|
{
|
|
|
|
var id = this.playerEntities.length;
|
|
|
|
Engine.QueryInterface(ent, IID_Player).SetPlayerID(id);
|
|
|
|
this.playerEntities.push(ent);
|
|
|
|
return id;
|
|
|
|
};
|
|
|
|
|
2010-11-30 13:27:38 +01:00
|
|
|
/**
|
|
|
|
* Returns the player entity ID for the given player ID.
|
|
|
|
* The player ID must be valid (else there will be an error message).
|
|
|
|
*/
|
2010-01-22 21:03:14 +01:00
|
|
|
PlayerManager.prototype.GetPlayerByID = function(id)
|
|
|
|
{
|
2010-11-30 13:27:38 +01:00
|
|
|
if (id in this.playerEntities)
|
|
|
|
return this.playerEntities[id];
|
|
|
|
|
|
|
|
var stack = new Error().stack.trimRight().replace(/^/mg, ' '); // indent each line
|
|
|
|
warn("GetPlayerByID: no player defined for id '"+id+"'\n"+stack);
|
|
|
|
|
|
|
|
return INVALID_ENTITY;
|
2010-01-22 21:03:14 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
PlayerManager.prototype.GetNumPlayers = function()
|
|
|
|
{
|
|
|
|
return this.playerEntities.length;
|
|
|
|
};
|
|
|
|
|
2011-08-22 23:45:39 +02:00
|
|
|
PlayerManager.prototype.RemoveAllPlayers = function()
|
|
|
|
{
|
|
|
|
// Destroy existing player entities
|
2013-05-13 00:28:02 +02:00
|
|
|
for each (var id in this.playerEntities)
|
2011-08-22 23:45:39 +02:00
|
|
|
{
|
|
|
|
Engine.DestroyEntity(id);
|
|
|
|
}
|
|
|
|
this.playerEntities = [];
|
|
|
|
};
|
|
|
|
|
2010-01-22 21:03:14 +01:00
|
|
|
Engine.RegisterComponentType(IID_PlayerManager, "PlayerManager", PlayerManager);
|