textures backward compatible, runtime name, finished cast component
parent
6586de1757
commit
0c7d1dcfd8
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
||||||
// COMPILE TIME DEFINITIONS (Generated via gulp)
|
// COMPILE TIME DEFINITIONS (Generated via gulp)
|
||||||
var __DATE__ = "Mon Dec 04 2017 21:03:18 GMT+0100 (CET)";
|
var __DATE__ = "Tue Dec 05 2017 11:22:05 GMT+0100 (CET)";
|
||||||
// END COMPILE TIME DEFINITIONS
|
// END COMPILE TIME DEFINITIONS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1994,6 +1994,41 @@ GameLib.Component.GetComponentInfo = function(number) {
|
||||||
throw new Error('Unknown component type: ' + number );
|
throw new Error('Unknown component type: ' + number );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the runtime friendly name
|
||||||
|
* @param runtime
|
||||||
|
* @returns {*}
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
GameLib.Component.GetRuntimeName = function(runtime) {
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.GRAPHICS_RUNTIME) {
|
||||||
|
return 'Graphics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.PHYSICS_RUNTIME) {
|
||||||
|
return 'Physics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.GUI_RUNTIME) {
|
||||||
|
return 'GUI';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.STATISTICS_RUNTIME) {
|
||||||
|
return 'Statistics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.SOCKET_RUNTIME) {
|
||||||
|
return 'Sockets';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.CODER_RUNTIME) {
|
||||||
|
return 'Coder';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'Default';
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {string}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
|
@ -3117,7 +3152,6 @@ GameLib.API.Entity.FromObject = function(objectEntity) {
|
||||||
* @param id
|
* @param id
|
||||||
* @param name
|
* @param name
|
||||||
* @param domElement
|
* @param domElement
|
||||||
* @param objects
|
|
||||||
* @param parentEntity
|
* @param parentEntity
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
|
@ -3125,7 +3159,6 @@ GameLib.API.GUI = function(
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
domElement,
|
domElement,
|
||||||
objects,
|
|
||||||
parentEntity
|
parentEntity
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
@ -3144,11 +3177,6 @@ GameLib.API.GUI = function(
|
||||||
}
|
}
|
||||||
this.domElement = domElement;
|
this.domElement = domElement;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(objects)) {
|
|
||||||
objects = [];
|
|
||||||
}
|
|
||||||
this.objects = objects;
|
|
||||||
|
|
||||||
GameLib.API.Component.call(
|
GameLib.API.Component.call(
|
||||||
this,
|
this,
|
||||||
GameLib.Component.GUI,
|
GameLib.Component.GUI,
|
||||||
|
@ -3179,7 +3207,6 @@ GameLib.API.GUI.FromObject = function(objectGUI) {
|
||||||
objectGUI.id,
|
objectGUI.id,
|
||||||
objectGUI.name,
|
objectGUI.name,
|
||||||
apiDomElement,
|
apiDomElement,
|
||||||
objectGUI.objects,
|
|
||||||
objectGUI.parentEntity
|
objectGUI.parentEntity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -4628,29 +4655,10 @@ GameLib.Cast.CAST_TYPE_PEER = 0x2;
|
||||||
GameLib.Cast.CAST_TYPE_ALL = 0x3;
|
GameLib.Cast.CAST_TYPE_ALL = 0x3;
|
||||||
GameLib.Cast.CAST_TYPE_ALL_BUT_PEER = 0x4;
|
GameLib.Cast.CAST_TYPE_ALL_BUT_PEER = 0x4;
|
||||||
|
|
||||||
/**
|
|
||||||
* We don't use a 3rd party particle engine right now
|
|
||||||
* @returns true
|
|
||||||
*/
|
|
||||||
GameLib.Cast.prototype.createInstance = function() {
|
GameLib.Cast.prototype.createInstance = function() {
|
||||||
|
|
||||||
this.instance = true;
|
this.instance = true;
|
||||||
|
|
||||||
// if (this.templateParticle) {
|
|
||||||
//
|
|
||||||
// this.templateParticle.mesh.position.x = this.position.x;
|
|
||||||
// this.templateParticle.mesh.position.y = this.position.y;
|
|
||||||
// this.templateParticle.mesh.position.z = this.position.z;
|
|
||||||
//
|
|
||||||
// this.templateParticle.direction.x = this.direction.x;
|
|
||||||
// this.templateParticle.direction.y = this.direction.y;
|
|
||||||
// this.templateParticle.direction.z = this.direction.z;
|
|
||||||
//
|
|
||||||
// this.templateParticle.scale.x = this.scale.x;
|
|
||||||
// this.templateParticle.scale.y = this.scale.y;
|
|
||||||
// this.templateParticle.scale.z = this.scale.z;
|
|
||||||
// }
|
|
||||||
|
|
||||||
GameLib.Component.prototype.createInstance.call(this);
|
GameLib.Component.prototype.createInstance.call(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4659,147 +4667,10 @@ GameLib.Cast.prototype.createInstance = function() {
|
||||||
*/
|
*/
|
||||||
GameLib.Cast.prototype.updateInstance = function(property) {
|
GameLib.Cast.prototype.updateInstance = function(property) {
|
||||||
|
|
||||||
if (property === 'particlesPerSecond') {
|
|
||||||
this.frequency = Number(1 / this.particlesPerSecond);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'frequency') {
|
|
||||||
this.particlesPerSecond = Math.round(1 / this.frequency);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'position') {
|
|
||||||
this.position.instance.x = this.position.x;
|
|
||||||
this.position.instance.y = this.position.y;
|
|
||||||
this.position.instance.z = this.position.z;
|
|
||||||
this.templateParticle.mesh.position = this.position.clone();
|
|
||||||
this.templateParticle.mesh.updateInstance('position', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'direction') {
|
|
||||||
this.direction.instance.x = this.direction.x;
|
|
||||||
this.direction.instance.y = this.direction.y;
|
|
||||||
this.direction.instance.z = this.direction.z;
|
|
||||||
this.templateParticle.direction = this.direction.clone();
|
|
||||||
this.templateParticle.direction.updateInstance('direction', true);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.Cast.prototype.remove = function() {
|
GameLib.Cast.prototype.remove = function() {
|
||||||
|
|
||||||
if (this.removeSubscription) {
|
|
||||||
console.log('already another remove subscription for ' + this.name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.removeSubscription = GameLib.Event.Subscribe(
|
|
||||||
GameLib.Event.REMOVE_PARTICLE_ENGINE,
|
|
||||||
function(data){
|
|
||||||
if (data.component === this) {
|
|
||||||
|
|
||||||
if (this.isClone) {
|
|
||||||
/**
|
|
||||||
* We only remove the things we cloned, the mesh, particle, and this
|
|
||||||
*/
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this.templateParticle.mesh
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this.templateParticle
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
GameLib.Component.prototype.remove.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.removeSubscription.remove();
|
|
||||||
|
|
||||||
this.removeSubscription = null;
|
|
||||||
}
|
|
||||||
}.bind(this)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Below signals the particle system to continue processing the particles, but don't create more, and
|
|
||||||
* we wait for the system to signal REMOVE_PARTICLE_ENGINE so we can destroy ourselves
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
this.disabledForRemoval = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
// GameLib.Cast.prototype.getChildrenComponents = function() {
|
|
||||||
//
|
|
||||||
// var components = [];
|
|
||||||
//
|
|
||||||
// if (this.templateParticle) {
|
|
||||||
// components.push(this.templateParticle);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh) {
|
|
||||||
// components.push(this.templateParticle.mesh);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh.materials && this.templateParticle.mesh.materials[0]) {
|
|
||||||
//
|
|
||||||
// components.push(this.templateParticle.mesh.materials[0]);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh.materials[0].diffuseMap) {
|
|
||||||
// components.push(this.templateParticle.mesh.materials[0].diffuseMap);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return components;
|
|
||||||
// };
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.clone = function() {
|
|
||||||
var mesh = this.templateParticle.mesh.clone();
|
|
||||||
var templateParticle = this.templateParticle.clone();
|
|
||||||
templateParticle.mesh = mesh;
|
|
||||||
templateParticle.instance = mesh.instance;
|
|
||||||
var engine = GameLib.Component.prototype.clone.call(this);
|
|
||||||
engine.templateParticle = templateParticle;
|
|
||||||
return engine;
|
|
||||||
};
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.processParticles = function(delta) {
|
|
||||||
// this.particles = this.particles.reduce(
|
|
||||||
// function(result, particle){
|
|
||||||
//
|
|
||||||
// particle.position.x += particle.userData.direction.x * delta;
|
|
||||||
// particle.position.y += particle.userData.direction.y * delta;
|
|
||||||
// particle.position.z += particle.userData.direction.z * delta;
|
|
||||||
//
|
|
||||||
// particle.userData.elapsed += delta;
|
|
||||||
// if (particle.userData.elapsed > particle.userData.lifeTime) {
|
|
||||||
// particle.parent.remove(particle);
|
|
||||||
// } else {
|
|
||||||
// result.push(particle);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return result;
|
|
||||||
// },
|
|
||||||
// []
|
|
||||||
// );
|
|
||||||
};
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.createNewParticle = function(camera) {
|
|
||||||
//
|
|
||||||
// var particle = this.templateParticle.clone(camera);
|
|
||||||
//
|
|
||||||
// this.particles.push(particle);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4811,15 +4682,11 @@ GameLib.Cast.prototype.toApiObject = function() {
|
||||||
return new GameLib.API.Cast(
|
return new GameLib.API.Cast(
|
||||||
this.id,
|
this.id,
|
||||||
this.name,
|
this.name,
|
||||||
this.position.toApiObject(),
|
this.castType,
|
||||||
this.direction.toApiObject(),
|
this.roomId,
|
||||||
this.enabled,
|
GameLib.Utils.IdOrNull(this.peer),
|
||||||
GameLib.Utils.IdOrNull(this.templateParticle),
|
this.serverIp,
|
||||||
this.particlesPerSecond,
|
this.port,
|
||||||
this.frequency,
|
|
||||||
this.elapsed,
|
|
||||||
GameLib.Utils.IdOrNull(this.camera),
|
|
||||||
this.pulse,
|
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
GameLib.Utils.IdOrNull(this.parentEntity)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -4827,20 +4694,17 @@ GameLib.Cast.prototype.toApiObject = function() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts from an Object Cast to a GameLib.Cast
|
* Converts from an Object Cast to a GameLib.Cast
|
||||||
* @param graphics GameLib.GraphicsRuntime
|
* @param sockets GameLib.SocketsRuntime
|
||||||
* @param objectCast Object
|
* @param objectCast Object
|
||||||
* @returns {GameLib.Cast}
|
* @returns {GameLib.Cast}
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
GameLib.Cast.FromObject = function(graphics, objectCast) {
|
GameLib.Cast.FromObject = function(sockets, objectCast) {
|
||||||
|
|
||||||
var apiCast = GameLib.API.Cast.FromObject(objectCast);
|
var apiCast = GameLib.API.Cast.FromObject(objectCast);
|
||||||
|
|
||||||
return new GameLib.Cast(
|
return new GameLib.Cast(
|
||||||
graphics,
|
sockets,
|
||||||
apiCast
|
apiCast
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9942,6 +9806,7 @@ GameLib.D3.API.Spline.FromObject = function(objectComponent) {
|
||||||
* @param mapping
|
* @param mapping
|
||||||
* @param magFilter
|
* @param magFilter
|
||||||
* @param minFilter
|
* @param minFilter
|
||||||
|
* @param storageType
|
||||||
* @param textureType
|
* @param textureType
|
||||||
* @param anisotropy
|
* @param anisotropy
|
||||||
* @param offset
|
* @param offset
|
||||||
|
@ -9972,7 +9837,7 @@ GameLib.D3.API.Texture = function(
|
||||||
mapping,
|
mapping,
|
||||||
magFilter,
|
magFilter,
|
||||||
minFilter,
|
minFilter,
|
||||||
textureType,
|
storageType,
|
||||||
anisotropy,
|
anisotropy,
|
||||||
offset,
|
offset,
|
||||||
generateMipmaps,
|
generateMipmaps,
|
||||||
|
@ -10053,10 +9918,10 @@ GameLib.D3.API.Texture = function(
|
||||||
}
|
}
|
||||||
this.minFilter = minFilter;
|
this.minFilter = minFilter;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(textureType)) {
|
if (GameLib.Utils.UndefinedOrNull(storageType)) {
|
||||||
textureType = GameLib.D3.API.Texture.TYPE_UNSIGNED_BYTE;
|
storageType = GameLib.D3.API.Texture.TYPE_UNSIGNED_BYTE;
|
||||||
}
|
}
|
||||||
this.textureType = textureType;
|
this.storageType = storageType;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(anisotropy)) {
|
if (GameLib.Utils.UndefinedOrNull(anisotropy)) {
|
||||||
anisotropy = 1;
|
anisotropy = 1;
|
||||||
|
@ -10212,7 +10077,7 @@ GameLib.D3.API.Texture.TEXTURE_TYPE_CANVAS = 0x3;
|
||||||
GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
||||||
return new GameLib.D3.API.Texture(
|
return new GameLib.D3.API.Texture(
|
||||||
objectTexture.id,
|
objectTexture.id,
|
||||||
objectTexture.textureType,
|
objectTexture.typeId || objectTexture.textureType,
|
||||||
objectTexture.name,
|
objectTexture.name,
|
||||||
objectTexture.image,
|
objectTexture.image,
|
||||||
objectTexture.images,
|
objectTexture.images,
|
||||||
|
@ -10224,7 +10089,7 @@ GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
||||||
objectTexture.mapping,
|
objectTexture.mapping,
|
||||||
objectTexture.magFilter,
|
objectTexture.magFilter,
|
||||||
objectTexture.minFilter,
|
objectTexture.minFilter,
|
||||||
objectTexture.textureType,
|
objectTexture.storageType,
|
||||||
objectTexture.anisotropy,
|
objectTexture.anisotropy,
|
||||||
GameLib.API.Vector2.FromObject(objectTexture.offset),
|
GameLib.API.Vector2.FromObject(objectTexture.offset),
|
||||||
objectTexture.generateMipmaps,
|
objectTexture.generateMipmaps,
|
||||||
|
@ -22383,7 +22248,7 @@ GameLib.D3.Texture = function(
|
||||||
apiTexture.mapping,
|
apiTexture.mapping,
|
||||||
apiTexture.magFilter,
|
apiTexture.magFilter,
|
||||||
apiTexture.minFilter,
|
apiTexture.minFilter,
|
||||||
apiTexture.textureType,
|
apiTexture.storageType,
|
||||||
apiTexture.anisotropy,
|
apiTexture.anisotropy,
|
||||||
apiTexture.offset,
|
apiTexture.offset,
|
||||||
apiTexture.generateMipmaps,
|
apiTexture.generateMipmaps,
|
||||||
|
@ -22695,7 +22560,7 @@ GameLib.D3.Texture.prototype.toApiObject = function() {
|
||||||
this.mapping,
|
this.mapping,
|
||||||
this.magFilter,
|
this.magFilter,
|
||||||
this.minFilter,
|
this.minFilter,
|
||||||
this.textureType,
|
this.storageType,
|
||||||
this.anisotropy,
|
this.anisotropy,
|
||||||
this.offset.toApiObject(),
|
this.offset.toApiObject(),
|
||||||
this.generateMipmaps,
|
this.generateMipmaps,
|
||||||
|
@ -23834,7 +23699,6 @@ GameLib.GUI = function(
|
||||||
apiGUI.id,
|
apiGUI.id,
|
||||||
apiGUI.name,
|
apiGUI.name,
|
||||||
apiGUI.domElement,
|
apiGUI.domElement,
|
||||||
apiGUI.objects,
|
|
||||||
apiGUI.parentEntity
|
apiGUI.parentEntity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -23874,12 +23738,6 @@ GameLib.GUI.prototype.toApiObject = function() {
|
||||||
this.id,
|
this.id,
|
||||||
this.name,
|
this.name,
|
||||||
GameLib.Utils.IdOrNull(this.domElement),
|
GameLib.Utils.IdOrNull(this.domElement),
|
||||||
objects.map(
|
|
||||||
function(object){
|
|
||||||
console.log('todo: check this' + object);
|
|
||||||
return GameLib.Utils.IdOrNull(object);
|
|
||||||
}
|
|
||||||
),
|
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
GameLib.Utils.IdOrNull(this.parentEntity)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -693,6 +693,41 @@ GameLib.Component.GetComponentInfo = function(number) {
|
||||||
throw new Error('Unknown component type: ' + number );
|
throw new Error('Unknown component type: ' + number );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the runtime friendly name
|
||||||
|
* @param runtime
|
||||||
|
* @returns {*}
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
GameLib.Component.GetRuntimeName = function(runtime) {
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.GRAPHICS_RUNTIME) {
|
||||||
|
return 'Graphics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.PHYSICS_RUNTIME) {
|
||||||
|
return 'Physics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.GUI_RUNTIME) {
|
||||||
|
return 'GUI';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.STATISTICS_RUNTIME) {
|
||||||
|
return 'Statistics';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.SOCKET_RUNTIME) {
|
||||||
|
return 'Sockets';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime === GameLib.Component.CODER_RUNTIME) {
|
||||||
|
return 'Coder';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'Default';
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {string}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
* @param id
|
* @param id
|
||||||
* @param name
|
* @param name
|
||||||
* @param domElement
|
* @param domElement
|
||||||
* @param objects
|
|
||||||
* @param parentEntity
|
* @param parentEntity
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +10,6 @@ GameLib.API.GUI = function(
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
domElement,
|
domElement,
|
||||||
objects,
|
|
||||||
parentEntity
|
parentEntity
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
@ -30,11 +28,6 @@ GameLib.API.GUI = function(
|
||||||
}
|
}
|
||||||
this.domElement = domElement;
|
this.domElement = domElement;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(objects)) {
|
|
||||||
objects = [];
|
|
||||||
}
|
|
||||||
this.objects = objects;
|
|
||||||
|
|
||||||
GameLib.API.Component.call(
|
GameLib.API.Component.call(
|
||||||
this,
|
this,
|
||||||
GameLib.Component.GUI,
|
GameLib.Component.GUI,
|
||||||
|
@ -65,7 +58,6 @@ GameLib.API.GUI.FromObject = function(objectGUI) {
|
||||||
objectGUI.id,
|
objectGUI.id,
|
||||||
objectGUI.name,
|
objectGUI.name,
|
||||||
apiDomElement,
|
apiDomElement,
|
||||||
objectGUI.objects,
|
|
||||||
objectGUI.parentEntity
|
objectGUI.parentEntity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -49,29 +49,10 @@ GameLib.Cast.CAST_TYPE_PEER = 0x2;
|
||||||
GameLib.Cast.CAST_TYPE_ALL = 0x3;
|
GameLib.Cast.CAST_TYPE_ALL = 0x3;
|
||||||
GameLib.Cast.CAST_TYPE_ALL_BUT_PEER = 0x4;
|
GameLib.Cast.CAST_TYPE_ALL_BUT_PEER = 0x4;
|
||||||
|
|
||||||
/**
|
|
||||||
* We don't use a 3rd party particle engine right now
|
|
||||||
* @returns true
|
|
||||||
*/
|
|
||||||
GameLib.Cast.prototype.createInstance = function() {
|
GameLib.Cast.prototype.createInstance = function() {
|
||||||
|
|
||||||
this.instance = true;
|
this.instance = true;
|
||||||
|
|
||||||
// if (this.templateParticle) {
|
|
||||||
//
|
|
||||||
// this.templateParticle.mesh.position.x = this.position.x;
|
|
||||||
// this.templateParticle.mesh.position.y = this.position.y;
|
|
||||||
// this.templateParticle.mesh.position.z = this.position.z;
|
|
||||||
//
|
|
||||||
// this.templateParticle.direction.x = this.direction.x;
|
|
||||||
// this.templateParticle.direction.y = this.direction.y;
|
|
||||||
// this.templateParticle.direction.z = this.direction.z;
|
|
||||||
//
|
|
||||||
// this.templateParticle.scale.x = this.scale.x;
|
|
||||||
// this.templateParticle.scale.y = this.scale.y;
|
|
||||||
// this.templateParticle.scale.z = this.scale.z;
|
|
||||||
// }
|
|
||||||
|
|
||||||
GameLib.Component.prototype.createInstance.call(this);
|
GameLib.Component.prototype.createInstance.call(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -80,147 +61,10 @@ GameLib.Cast.prototype.createInstance = function() {
|
||||||
*/
|
*/
|
||||||
GameLib.Cast.prototype.updateInstance = function(property) {
|
GameLib.Cast.prototype.updateInstance = function(property) {
|
||||||
|
|
||||||
if (property === 'particlesPerSecond') {
|
|
||||||
this.frequency = Number(1 / this.particlesPerSecond);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'frequency') {
|
|
||||||
this.particlesPerSecond = Math.round(1 / this.frequency);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'position') {
|
|
||||||
this.position.instance.x = this.position.x;
|
|
||||||
this.position.instance.y = this.position.y;
|
|
||||||
this.position.instance.z = this.position.z;
|
|
||||||
this.templateParticle.mesh.position = this.position.clone();
|
|
||||||
this.templateParticle.mesh.updateInstance('position', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'direction') {
|
|
||||||
this.direction.instance.x = this.direction.x;
|
|
||||||
this.direction.instance.y = this.direction.y;
|
|
||||||
this.direction.instance.z = this.direction.z;
|
|
||||||
this.templateParticle.direction = this.direction.clone();
|
|
||||||
this.templateParticle.direction.updateInstance('direction', true);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.Cast.prototype.remove = function() {
|
GameLib.Cast.prototype.remove = function() {
|
||||||
|
|
||||||
if (this.removeSubscription) {
|
|
||||||
console.log('already another remove subscription for ' + this.name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.removeSubscription = GameLib.Event.Subscribe(
|
|
||||||
GameLib.Event.REMOVE_PARTICLE_ENGINE,
|
|
||||||
function(data){
|
|
||||||
if (data.component === this) {
|
|
||||||
|
|
||||||
if (this.isClone) {
|
|
||||||
/**
|
|
||||||
* We only remove the things we cloned, the mesh, particle, and this
|
|
||||||
*/
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this.templateParticle.mesh
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this.templateParticle
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
GameLib.Event.Emit(
|
|
||||||
GameLib.Event.REMOVE_COMPONENT,
|
|
||||||
{
|
|
||||||
component: this
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
GameLib.Component.prototype.remove.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.removeSubscription.remove();
|
|
||||||
|
|
||||||
this.removeSubscription = null;
|
|
||||||
}
|
|
||||||
}.bind(this)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Below signals the particle system to continue processing the particles, but don't create more, and
|
|
||||||
* we wait for the system to signal REMOVE_PARTICLE_ENGINE so we can destroy ourselves
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
this.disabledForRemoval = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
// GameLib.Cast.prototype.getChildrenComponents = function() {
|
|
||||||
//
|
|
||||||
// var components = [];
|
|
||||||
//
|
|
||||||
// if (this.templateParticle) {
|
|
||||||
// components.push(this.templateParticle);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh) {
|
|
||||||
// components.push(this.templateParticle.mesh);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh.materials && this.templateParticle.mesh.materials[0]) {
|
|
||||||
//
|
|
||||||
// components.push(this.templateParticle.mesh.materials[0]);
|
|
||||||
//
|
|
||||||
// if (this.templateParticle.mesh.materials[0].diffuseMap) {
|
|
||||||
// components.push(this.templateParticle.mesh.materials[0].diffuseMap);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return components;
|
|
||||||
// };
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.clone = function() {
|
|
||||||
var mesh = this.templateParticle.mesh.clone();
|
|
||||||
var templateParticle = this.templateParticle.clone();
|
|
||||||
templateParticle.mesh = mesh;
|
|
||||||
templateParticle.instance = mesh.instance;
|
|
||||||
var engine = GameLib.Component.prototype.clone.call(this);
|
|
||||||
engine.templateParticle = templateParticle;
|
|
||||||
return engine;
|
|
||||||
};
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.processParticles = function(delta) {
|
|
||||||
// this.particles = this.particles.reduce(
|
|
||||||
// function(result, particle){
|
|
||||||
//
|
|
||||||
// particle.position.x += particle.userData.direction.x * delta;
|
|
||||||
// particle.position.y += particle.userData.direction.y * delta;
|
|
||||||
// particle.position.z += particle.userData.direction.z * delta;
|
|
||||||
//
|
|
||||||
// particle.userData.elapsed += delta;
|
|
||||||
// if (particle.userData.elapsed > particle.userData.lifeTime) {
|
|
||||||
// particle.parent.remove(particle);
|
|
||||||
// } else {
|
|
||||||
// result.push(particle);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return result;
|
|
||||||
// },
|
|
||||||
// []
|
|
||||||
// );
|
|
||||||
};
|
|
||||||
|
|
||||||
GameLib.Cast.prototype.createNewParticle = function(camera) {
|
|
||||||
//
|
|
||||||
// var particle = this.templateParticle.clone(camera);
|
|
||||||
//
|
|
||||||
// this.particles.push(particle);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -232,15 +76,11 @@ GameLib.Cast.prototype.toApiObject = function() {
|
||||||
return new GameLib.API.Cast(
|
return new GameLib.API.Cast(
|
||||||
this.id,
|
this.id,
|
||||||
this.name,
|
this.name,
|
||||||
this.position.toApiObject(),
|
this.castType,
|
||||||
this.direction.toApiObject(),
|
this.roomId,
|
||||||
this.enabled,
|
GameLib.Utils.IdOrNull(this.peer),
|
||||||
GameLib.Utils.IdOrNull(this.templateParticle),
|
this.serverIp,
|
||||||
this.particlesPerSecond,
|
this.port,
|
||||||
this.frequency,
|
|
||||||
this.elapsed,
|
|
||||||
GameLib.Utils.IdOrNull(this.camera),
|
|
||||||
this.pulse,
|
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
GameLib.Utils.IdOrNull(this.parentEntity)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -248,18 +88,15 @@ GameLib.Cast.prototype.toApiObject = function() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts from an Object Cast to a GameLib.Cast
|
* Converts from an Object Cast to a GameLib.Cast
|
||||||
* @param graphics GameLib.GraphicsRuntime
|
* @param sockets GameLib.SocketsRuntime
|
||||||
* @param objectCast Object
|
* @param objectCast Object
|
||||||
* @returns {GameLib.Cast}
|
* @returns {GameLib.Cast}
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
GameLib.Cast.FromObject = function(graphics, objectCast) {
|
GameLib.Cast.FromObject = function(sockets, objectCast) {
|
||||||
|
|
||||||
var apiCast = GameLib.API.Cast.FromObject(objectCast);
|
var apiCast = GameLib.API.Cast.FromObject(objectCast);
|
||||||
|
|
||||||
return new GameLib.Cast(
|
return new GameLib.Cast(
|
||||||
graphics,
|
sockets,
|
||||||
apiCast
|
apiCast
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
* @param mapping
|
* @param mapping
|
||||||
* @param magFilter
|
* @param magFilter
|
||||||
* @param minFilter
|
* @param minFilter
|
||||||
|
* @param storageType
|
||||||
* @param textureType
|
* @param textureType
|
||||||
* @param anisotropy
|
* @param anisotropy
|
||||||
* @param offset
|
* @param offset
|
||||||
|
@ -43,7 +44,7 @@ GameLib.D3.API.Texture = function(
|
||||||
mapping,
|
mapping,
|
||||||
magFilter,
|
magFilter,
|
||||||
minFilter,
|
minFilter,
|
||||||
textureType,
|
storageType,
|
||||||
anisotropy,
|
anisotropy,
|
||||||
offset,
|
offset,
|
||||||
generateMipmaps,
|
generateMipmaps,
|
||||||
|
@ -124,10 +125,10 @@ GameLib.D3.API.Texture = function(
|
||||||
}
|
}
|
||||||
this.minFilter = minFilter;
|
this.minFilter = minFilter;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(textureType)) {
|
if (GameLib.Utils.UndefinedOrNull(storageType)) {
|
||||||
textureType = GameLib.D3.API.Texture.TYPE_UNSIGNED_BYTE;
|
storageType = GameLib.D3.API.Texture.TYPE_UNSIGNED_BYTE;
|
||||||
}
|
}
|
||||||
this.textureType = textureType;
|
this.storageType = storageType;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(anisotropy)) {
|
if (GameLib.Utils.UndefinedOrNull(anisotropy)) {
|
||||||
anisotropy = 1;
|
anisotropy = 1;
|
||||||
|
@ -283,7 +284,7 @@ GameLib.D3.API.Texture.TEXTURE_TYPE_CANVAS = 0x3;
|
||||||
GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
||||||
return new GameLib.D3.API.Texture(
|
return new GameLib.D3.API.Texture(
|
||||||
objectTexture.id,
|
objectTexture.id,
|
||||||
objectTexture.textureType,
|
objectTexture.typeId || objectTexture.textureType,
|
||||||
objectTexture.name,
|
objectTexture.name,
|
||||||
objectTexture.image,
|
objectTexture.image,
|
||||||
objectTexture.images,
|
objectTexture.images,
|
||||||
|
@ -295,7 +296,7 @@ GameLib.D3.API.Texture.FromObject = function(objectTexture) {
|
||||||
objectTexture.mapping,
|
objectTexture.mapping,
|
||||||
objectTexture.magFilter,
|
objectTexture.magFilter,
|
||||||
objectTexture.minFilter,
|
objectTexture.minFilter,
|
||||||
objectTexture.textureType,
|
objectTexture.storageType,
|
||||||
objectTexture.anisotropy,
|
objectTexture.anisotropy,
|
||||||
GameLib.API.Vector2.FromObject(objectTexture.offset),
|
GameLib.API.Vector2.FromObject(objectTexture.offset),
|
||||||
objectTexture.generateMipmaps,
|
objectTexture.generateMipmaps,
|
||||||
|
|
|
@ -35,7 +35,7 @@ GameLib.D3.Texture = function(
|
||||||
apiTexture.mapping,
|
apiTexture.mapping,
|
||||||
apiTexture.magFilter,
|
apiTexture.magFilter,
|
||||||
apiTexture.minFilter,
|
apiTexture.minFilter,
|
||||||
apiTexture.textureType,
|
apiTexture.storageType,
|
||||||
apiTexture.anisotropy,
|
apiTexture.anisotropy,
|
||||||
apiTexture.offset,
|
apiTexture.offset,
|
||||||
apiTexture.generateMipmaps,
|
apiTexture.generateMipmaps,
|
||||||
|
@ -347,7 +347,7 @@ GameLib.D3.Texture.prototype.toApiObject = function() {
|
||||||
this.mapping,
|
this.mapping,
|
||||||
this.magFilter,
|
this.magFilter,
|
||||||
this.minFilter,
|
this.minFilter,
|
||||||
this.textureType,
|
this.storageType,
|
||||||
this.anisotropy,
|
this.anisotropy,
|
||||||
this.offset.toApiObject(),
|
this.offset.toApiObject(),
|
||||||
this.generateMipmaps,
|
this.generateMipmaps,
|
||||||
|
|
|
@ -24,7 +24,6 @@ GameLib.GUI = function(
|
||||||
apiGUI.id,
|
apiGUI.id,
|
||||||
apiGUI.name,
|
apiGUI.name,
|
||||||
apiGUI.domElement,
|
apiGUI.domElement,
|
||||||
apiGUI.objects,
|
|
||||||
apiGUI.parentEntity
|
apiGUI.parentEntity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -64,12 +63,6 @@ GameLib.GUI.prototype.toApiObject = function() {
|
||||||
this.id,
|
this.id,
|
||||||
this.name,
|
this.name,
|
||||||
GameLib.Utils.IdOrNull(this.domElement),
|
GameLib.Utils.IdOrNull(this.domElement),
|
||||||
objects.map(
|
|
||||||
function(object){
|
|
||||||
console.log('todo: check this' + object);
|
|
||||||
return GameLib.Utils.IdOrNull(object);
|
|
||||||
}
|
|
||||||
),
|
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
GameLib.Utils.IdOrNull(this.parentEntity)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue