diff --git a/src/game-lib-api-entity-manager.js b/src/game-lib-api-entity-manager.js index 66a7c60..f352208 100644 --- a/src/game-lib-api-entity-manager.js +++ b/src/game-lib-api-entity-manager.js @@ -4,13 +4,13 @@ * @param id * @param name * @param entities GameLib.API.Entity[] - * @param parentEntity + * @param defaultEntity */ GameLib.API.EntityManager = function( id, name, entities, - parentEntity + defaultEntity ) { if (GameLib.Utils.UndefinedOrNull(id)) { id = GameLib.Utils.RandomId(); @@ -27,10 +27,10 @@ GameLib.API.EntityManager = function( } this.entities = entities; - if (GameLib.Utils.UndefinedOrNull(parentEntity)) { - parentEntity = null; - } - this.parentEntity = parentEntity; + if (GameLib.Utils.UndefinedOrNull(defaultEntity)) { + defaultEntity = null; + } + this.defaultEntity = defaultEntity; }; GameLib.API.EntityManager.prototype = Object.create(GameLib.Component.prototype); @@ -53,6 +53,6 @@ GameLib.API.EntityManager.FromObject = function(objectEntityManager) { objectEntityManager.id, objectEntityManager.name, apiEntities, - objectEntityManager.parentEntity + objectEntityManager.defaultEntity ); }; diff --git a/src/game-lib-entity-manager.js b/src/game-lib-entity-manager.js index e9a846e..cacf53f 100644 --- a/src/game-lib-entity-manager.js +++ b/src/game-lib-entity-manager.js @@ -2,13 +2,23 @@ * GameLib.EntityManager * @constructor */ -GameLib.EntityManager = function() { +GameLib.EntityManager = function(apiEntityManager) { - this.id = GameLib.Utils.RandomId(); + if (GameLib.Utils.UndefinedOrNull(apiEntityManager)) { + apiEntityManager = {}; + } - this.name = 'Entity Manager (' + this.id + ')'; + if (apiEntityManager instanceof GameLib.EntityManager) { + return apiEntityManager; + } - this.entities = []; + GameLib.API.EntityManager.call( + this, + apiEntityManager.id, + apiEntityManager.name, + apiEntityManager.entities, + apiEntityManager.defaultEntity + ); /** * The 'register' array is a register of each component currently loaded - when the linking @@ -31,12 +41,13 @@ GameLib.EntityManager = function() { this, GameLib.Component.COMPONENT_ENTITY_MANAGER, { - 'entities' : [GameLib.Entity] + 'entities' : [GameLib.Entity], + 'defaultEntity' : GameLib.Entity } ); }; -GameLib.EntityManager.prototype = Object.create(GameLib.Component.prototype); +GameLib.EntityManager.prototype = Object.create(GameLib.API.EntityManager.prototype); GameLib.EntityManager.prototype.constructor = GameLib.EntityManager; GameLib.EntityManager.prototype.createInstance = function() { @@ -131,6 +142,8 @@ GameLib.EntityManager.prototype.createEntity = function(name) { this.entities.push(entity); + this.defaultEntity = entity; + GameLib.Event.Emit( GameLib.Event.NEW_ENTITY, { @@ -334,7 +347,7 @@ GameLib.EntityManager.prototype.toApiObject = function() { this.id, this.name, apiEntities, - GameLib.Utils.IdOrNull(this.parentEntity) + GameLib.Utils.IdOrNull(this.defaultEntity) ); return apiEntityManager;