repo: janusweb action: commit revision: path_from: revision_from: 73f6c51955fec41706af8ceb4a4167618787b1d6: path_to: revision_to:
commit 73f6c51955fec41706af8ceb4a4167618787b1d6 Author: James BaicoianuDate: Sat Oct 21 03:21:13 2017 -0700 Added janus.extendClass() and new support for built-in custom elements diff --git a/scripts/janusweb.js b/scripts/janusweb.js
--- a/scripts/janusweb.js
+++ b/scripts/janusweb.js
@@ -1,4 +1,4 @@
-elation.require(['janusweb.config', 'engine.things.generic','janusweb.remoteplayer', 'janusweb.room', 'janusweb.tracking', 'janusweb.multiplayermanager', 'janusweb.external.JanusFireboxParser', 'utils.proxy'], function() {
+elation.require(['janusweb.config', 'engine.things.generic','janusweb.remoteplayer', 'janusweb.room', 'janusweb.tracking', 'janusweb.multiplayermanager', 'janusweb.external.JanusFireboxParser', 'utils.proxy', 'janusweb.elements.raycaster'], function() {
elation.requireCSS('janusweb.janusweb');
elation.component.add('engine.things.janusweb', function() {
this.rooms = {};
@@ -106,6 +106,8 @@ elation.require(['janusweb.config', 'engine.things.generic','janusweb.remoteplay
elation.template.add('janusweb.url', this.urltemplate);
}
this.initScripting();
+ // TODO - this should be config-driven
+ this.registerAdditionalElements(['raycaster']);
}
this.initScripting = function() {
if (this.scriptingInitialized) return;
@@ -168,7 +170,7 @@ elation.require(['janusweb.config', 'engine.things.generic','janusweb.remoteplay
resetavatar: ['function', 'resetAvatar'],
hasFocus: ['function', 'hasFocus'],
registerElement: ['function', 'registerElement'],
-
+ extendElement: ['function', 'extendElement'],
});
//THREE.Vector3.prototype.toString = function() { return this.toArray().map(function(d) { return d.toFixed(4); }).join(' '); }
@@ -547,6 +549,9 @@ console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
extendclass: extendclass
};
}
+ this.extendElement = function(extendclass, tagname, classobj) {
+ this.registerElement(tagname, classobj, extendclass);
+ }
this.registerBuiltinElements = function(elements) {
for (var k in elements) {
var tagname = k.toLowerCase(),
@@ -558,6 +563,11 @@ console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
};
}
}
+ this.registerAdditionalElements = function(elements) {
+ for (var k in elation.janusweb.elements) {
+ this.registerElement(k, elation.janusweb.elements[k].classdef);
+ }
+ }
this.getAsset = function(type, name, assetargs) {
var asset;
if (this.assetpack) {
-----END OF PAGE-----