From 50713b831511768dbac2fb35ef3f4a2b8b7b23ab Mon Sep 17 00:00:00 2001 From: "Theunis J. Botha" Date: Wed, 21 Dec 2016 16:06:30 +0100 Subject: [PATCH] components can store references to other components - not objects --- src/game-lib-d3-mesh.js | 24 ++++++++++++++++-------- src/game-lib-system-animation.js | 6 ++++++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/game-lib-d3-mesh.js b/src/game-lib-d3-mesh.js index 7f60834..db69397 100644 --- a/src/game-lib-d3-mesh.js +++ b/src/game-lib-d3-mesh.js @@ -348,10 +348,21 @@ GameLib.D3.Mesh.prototype.createInstance = function(update) { this.position.y = this.parentMesh.position.y; this.position.z = this.parentMesh.position.z; - this.quaternion.x = this.parentMesh.quaternion.x; - this.quaternion.y = this.parentMesh.quaternion.y; - this.quaternion.z = this.parentMesh.quaternion.z; - this.quaternion.w = this.parentMesh.quaternion.w; + // var euler = new THREE.Euler(); + // + // var worldRotation = this.parentMesh.instance.getWorldRotation(); + // + // this.instance.setRotationFromEuler(euler); + + // this.quaternion.x = this.parentMesh.quaternion.x; + // this.quaternion.y = this.parentMesh.quaternion.y; + // this.quaternion.z = this.parentMesh.quaternion.z; + // this.quaternion.w = this.parentMesh.quaternion.w; + } else { + instance.quaternion.x = this.quaternion.x; + instance.quaternion.y = this.quaternion.y; + instance.quaternion.z = this.quaternion.z; + instance.quaternion.w = this.quaternion.w; } instance.position.x = this.position.x + this.localPosition.x; @@ -366,10 +377,7 @@ GameLib.D3.Mesh.prototype.createInstance = function(update) { instance.up.y = this.up.y; instance.up.z = this.up.z; - instance.quaternion.x = this.quaternion.x; - instance.quaternion.y = this.quaternion.y; - instance.quaternion.z = this.quaternion.z; - instance.quaternion.w = this.quaternion.w; + instance.rotateX(this.localRotation.x); instance.rotateY(this.localRotation.y); diff --git a/src/game-lib-system-animation.js b/src/game-lib-system-animation.js index 75d258b..7c85250 100644 --- a/src/game-lib-system-animation.js +++ b/src/game-lib-system-animation.js @@ -29,6 +29,12 @@ GameLib.System.Animation.prototype.update = function(deltaTime) { object.update(deltaTime); }); + objects = this.entityManager.query([GameLib.D3.Mesh]); + + objects.forEach(function(object) { + object.updateInstance(); + }); + objects = this.entityManager.query([GameLib.D3.Follow]); objects.forEach(function(object) {