entities have renderers, sometimes

beta.r3js.org
-=yb4f310 2017-12-30 19:49:04 +01:00
parent 9c73e39298
commit e8ee24a12a
3 changed files with 20 additions and 75 deletions

View File

@ -3,16 +3,16 @@
* @param id * @param id
* @param name * @param name
* @param components GameLib.Component[] * @param components GameLib.Component[]
* @param renderer
* @param parentEntity GameLib.Entity * @param parentEntity GameLib.Entity
* @param parentEntityManager
* @constructor * @constructor
*/ */
GameLib.API.Entity = function( GameLib.API.Entity = function(
id, id,
name, name,
components, components,
parentEntity, renderer,
parentEntityManager parentEntity
) { ) {
if (GameLib.Utils.UndefinedOrNull(id)) { if (GameLib.Utils.UndefinedOrNull(id)) {
id = GameLib.Utils.RandomId(); id = GameLib.Utils.RandomId();
@ -29,18 +29,16 @@ GameLib.API.Entity = function(
} }
this.components = components; this.components = components;
if (GameLib.Utils.UndefinedOrNull(renderer)) {
renderer = null;
}
this.renderer = renderer;
GameLib.API.Component.call( GameLib.API.Component.call(
this, this,
GameLib.Component.ENTITY, GameLib.Component.ENTITY,
parentEntity parentEntity
); );
if (GameLib.Utils.UndefinedOrNull(parentEntityManager)) {
parentEntityManager = null;
}
this.parentEntityManager = parentEntityManager;
this.activeComponent = null;
}; };
GameLib.API.Entity.prototype = Object.create(GameLib.Component.prototype); GameLib.API.Entity.prototype = Object.create(GameLib.Component.prototype);
@ -56,7 +54,7 @@ GameLib.API.Entity.FromObject = function(objectEntity) {
objectEntity.id, objectEntity.id,
objectEntity.name, objectEntity.name,
objectEntity.components, objectEntity.components,
objectEntity.parentEntity, objectEntity.renderer,
objectEntity.parentEntityManager objectEntity.parentEntity
) )
}; };

View File

@ -19,15 +19,15 @@ GameLib.Entity = function (
apiEntity.id, apiEntity.id,
apiEntity.name, apiEntity.name,
apiEntity.components, apiEntity.components,
apiEntity.parentEntity, apiEntity.renderer,
apiEntity.parentEntityManager apiEntity.parentEntity
); );
GameLib.Component.call( GameLib.Component.call(
this, this,
{ {
'components' : [GameLib.Component], 'components' : [GameLib.Component],
'activeComponent' : GameLib.Component 'renderer' : GameLib.D3.Renderer
} }
); );
}; };
@ -195,8 +195,8 @@ GameLib.Entity.prototype.toApiObject = function() {
this.id, this.id,
this.name, this.name,
apiComponents, apiComponents,
GameLib.Utils.IdOrNull(this.parentEntity), GameLib.Utils.IdOrNull(this.renderer),
GameLib.Utils.IdOrNull(this.parentEntityManager) GameLib.Utils.IdOrNull(this.parentEntity)
); );
}; };
@ -204,11 +204,10 @@ GameLib.Entity.prototype.toApiObject = function() {
/** /**
* Entity from Object * Entity from Object
* @param objectEntity Object * @param objectEntity Object
* @param parentEntityManager GameLib.D3.EntityManager
* @returns {GameLib.Entity} * @returns {GameLib.Entity}
* @constructor * @constructor
*/ */
GameLib.Entity.FromObject = function(objectEntity, parentEntityManager) { GameLib.Entity.FromObject = function(objectEntity) {
var apiEntity = GameLib.API.Entity.FromObject(objectEntity); var apiEntity = GameLib.API.Entity.FromObject(objectEntity);
@ -216,11 +215,7 @@ GameLib.Entity.FromObject = function(objectEntity, parentEntityManager) {
apiEntity apiEntity
); );
if (GameLib.Utils.UndefinedOrNull(parentEntityManager)) { GameLib.EntityManager.Instance.addEntity(entity);
return entity;
}
parentEntityManager.addEntity(entity);
return entity; return entity;
}; };

View File

@ -244,11 +244,6 @@ GameLib.System.GUI.prototype.start = function() {
this.meshDeslected this.meshDeslected
); );
this.newEntitySubscription = this.subscribe(
GameLib.Event.NEW_ENTITY,
this.newEntity
);
this.componentRemovedSubscription = this.subscribe( this.componentRemovedSubscription = this.subscribe(
GameLib.Event.REMOVE_COMPONENT, GameLib.Event.REMOVE_COMPONENT,
this.removeComponent this.removeComponent
@ -452,7 +447,7 @@ GameLib.System.GUI.prototype.buildVectorControl = function(folder, componentTemp
}; };
/** /**
* Builds an Entity Selection control * Builds a Paren Selection control
* @param folder * @param folder
* @param componentTemplate * @param componentTemplate
* @param property * @param property
@ -1869,10 +1864,7 @@ GameLib.System.GUI.prototype.buildGUI = function(data) {
} }
if ( if (
templateProperty === 'parentEntity' || templateProperty.indexOf('parent') === 0
templateProperty === 'parentPhysicsWorld' ||
templateProperty === 'parentMesh' ||
templateProperty === 'parentScene'
) { ) {
this.buildParentSelectionControl(folder, componentTemplate, templateProperty); this.buildParentSelectionControl(folder, componentTemplate, templateProperty);
continue; continue;
@ -1919,42 +1911,7 @@ GameLib.System.GUI.prototype.buildGUI = function(data) {
} }
this.buildControl(folder, componentTemplate, templateProperty); this.buildControl(folder, componentTemplate, templateProperty);
// if ( }
// component.linkedObjects &&
// component.linkedObjects[property]
// ) {
// if (property === 'parentEntity') {
// this.buildEntitySelectionControlFromArray(
// folder,
// component,
// property,
// entityManager
// )
// } else if (component.linkedObjects[property] instanceof Array) {
// this.buildArrayManager(
// folder,
// component,
// property,
// component.linkedObjects[property],
// entityManager
// )
// } else {
// this.buildSelectControl(folder, component, property, entityManager, component.linkedObjects[property]);
// }
//
// } else if (typeof (component[property]) === 'object') {
//
// if (this.isColor(component[property])) {
// this.buildControl(folder, component, property);
// } else {
// //console.log('ignored: ' + property);
// }
// } else {
// this.buildControl(folder, component, property, entityManager);
// }
}
} }
}.bind(this) }.bind(this)
); );
@ -1987,11 +1944,6 @@ GameLib.System.GUI.prototype.removeComponent = function(data) {
}; };
GameLib.System.GUI.prototype.newEntity = function(data) {
};
GameLib.System.GUI.prototype.castSourceChanged = function(data) { GameLib.System.GUI.prototype.castSourceChanged = function(data) {
this.buildGUI(null); this.buildGUI(null);
}; };