r3-legacy/src/game-lib-api-entity-manager.js

54 lines
1.3 KiB
JavaScript

/**
* Entity API Object (for storing / loading entities to and from API)
* @constructor
* @param id
* @param name
* @param entities GameLib.API.Entity[]
* @param parentEntity
*/
GameLib.API.EntityManager = function(
id,
name,
entities,
// systems,
parentEntity
) {
// if (GameLib.Utils.UndefinedOrNull(systems)) {
// systems = [];
// }
// this.systems = systems;
};
GameLib.API.EntityManager.prototype = Object.create(GameLib.Component.prototype);
GameLib.API.EntityManager.prototype.constructor = GameLib.API.EntityManager;
/**
* Creates an API entity manager from an Object entity manager
* @param objectEntityManager
* @constructor
*/
GameLib.API.EntityManager.FromObject = function(objectEntityManager) {
var apiEntities = objectEntityManager.entities.map(
function (objectEntity) {
return GameLib.API.Entity.FromObject(objectEntity);
}
);
// var apiSystems = objectEntityManager.systems.map(
// function (objectSystem) {
// return GameLib.API.System.FromObject(objectSystem);
// }
// );
return new GameLib.API.EntityManager(
objectEntityManager.id,
objectEntityManager.name,
apiEntities,
// apiSystems,
objectEntityManager.parentEntity
);
};