load scene by name
parent
ffa5d8505b
commit
ee0e34cb59
46
game-lib.js
46
game-lib.js
|
@ -2350,21 +2350,53 @@ GameLib.D3.prototype.createThreeMaterial = function(blenderMaterial) {
|
||||||
return defer.promise;
|
return defer.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a scene directly from the API
|
||||||
|
* @param sceneName
|
||||||
|
* @param onLoaded callback
|
||||||
|
*/
|
||||||
|
GameLib.D3.prototype.loadSceneFromApi = function(sceneName, onLoaded) {
|
||||||
|
/**
|
||||||
|
* First check if this is a client or server side request
|
||||||
|
*/
|
||||||
|
if (typeof XMLHttpRequest == 'undefined') {
|
||||||
|
console.warn('implement server side loading from API here');
|
||||||
|
return onLoaded(null, new Error('not implemented'));
|
||||||
|
}
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open(
|
||||||
|
'GET',
|
||||||
|
this.apiUrl + '/scene/pong%20latest'
|
||||||
|
);
|
||||||
|
|
||||||
|
xhr.onreadystatechange = function(xhr, gameLibD3) {
|
||||||
|
return function() {
|
||||||
|
if (xhr.readyState == 4) {
|
||||||
|
var response = JSON.parse(xhr.responseText);
|
||||||
|
gameLibD3.loadScene(response.scene[0], onLoaded, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}(xhr, this);
|
||||||
|
|
||||||
|
xhr.send();
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads a GameLib.D3.Scene object into a ThreeJS Scene object
|
* Loads a GameLib.D3.Scene object into a ThreeJS Scene object
|
||||||
* @param blenderScene GameLib.D3.Scene
|
* @param gameLibScene GameLib.D3.Scene
|
||||||
* @param onLoaded callback when all meshes have loaded
|
* @param onLoaded callback when all meshes have loaded
|
||||||
* @param computeNormals set to true to compute new face and vertex normals during load
|
* @param computeNormals set to true to compute new face and vertex normals during load
|
||||||
*/
|
*/
|
||||||
GameLib.D3.prototype.loadScene = function(blenderScene, onLoaded, computeNormals) {
|
GameLib.D3.prototype.loadScene = function(gameLibScene, onLoaded, computeNormals) {
|
||||||
|
|
||||||
console.log("loading scene " + blenderScene.name);
|
console.log("loading scene " + gameLibScene.name);
|
||||||
|
|
||||||
var meshQ = [];
|
var meshQ = [];
|
||||||
|
|
||||||
for (var m = 0; m < blenderScene.meshes.length; m++) {
|
for (var m = 0; m < gameLibScene.meshes.length; m++) {
|
||||||
|
|
||||||
var mesh = blenderScene.meshes[m];
|
var mesh = gameLibScene.meshes[m];
|
||||||
|
|
||||||
console.log("loading mesh " + mesh.name);
|
console.log("loading mesh " + mesh.name);
|
||||||
|
|
||||||
|
@ -2553,9 +2585,9 @@ GameLib.D3.prototype.loadScene = function(blenderScene, onLoaded, computeNormals
|
||||||
|
|
||||||
var threeLights = [];
|
var threeLights = [];
|
||||||
|
|
||||||
for (var sli = 0; sli < blenderScene.lights.length; sli++) {
|
for (var sli = 0; sli < gameLibScene.lights.length; sli++) {
|
||||||
|
|
||||||
var blenderLight = blenderScene.lights[sli];
|
var blenderLight = gameLibScene.lights[sli];
|
||||||
|
|
||||||
var light = null;
|
var light = null;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue