diff --git a/editor/js/Config.js b/editor/js/Config.js index 815b1d5919aa796e7c1aae0869d097943a28e6be..df0ef6c9536b6b4cfc727e286e7ea121bc73b9ad 100644 --- a/editor/js/Config.js +++ b/editor/js/Config.js @@ -13,6 +13,7 @@ var Config = function () { 'project/renderer': 'WebGLRenderer', 'project/renderer/antialias': true, 'project/renderer/shadows': true, + 'project/editable': false, 'project/vr': false, 'settings/history': false, diff --git a/editor/js/Editor.js b/editor/js/Editor.js index 4bd4f826b97a0aa02d25d66df5cd0659b04fc4c4..cabc66129b116d5253294efede17652f0ba23f34 100644 --- a/editor/js/Editor.js +++ b/editor/js/Editor.js @@ -446,15 +446,6 @@ Editor.prototype = { } - // TODO: Clean this up somehow - - if ( json.project !== undefined ) { - - this.config.setKey( 'project/renderer/shadows', json.project.shadows ); - this.config.setKey( 'project/vr', json.project.vr ); - - } - var camera = loader.parse( json.camera ); this.camera.copy( camera ); @@ -494,6 +485,7 @@ Editor.prototype = { metadata: {}, project: { shadows: this.config.getKey( 'project/renderer/shadows' ), + editable: this.config.getKey( 'project/editable' ), vr: this.config.getKey( 'project/vr' ) }, camera: this.camera.toJSON(), diff --git a/editor/js/Sidebar.Project.js b/editor/js/Sidebar.Project.js index c2b4afd4ff9d347b7e83b01c9c450b42997510a2..8f2cd52269312f57f1d8b8680f80e8af75e03e03 100644 --- a/editor/js/Sidebar.Project.js +++ b/editor/js/Sidebar.Project.js @@ -80,6 +80,20 @@ Sidebar.Project = function ( editor ) { container.add( rendererPropertiesRow ); + // Editable + + var editableRow = new UI.Row(); + var editable = new UI.Checkbox( config.getKey( 'project/editable' ) ).setLeft( '100px' ).onChange( function () { + + config.setKey( 'project/editable', this.getValue() ); + + } ); + + editableRow.add( new UI.Text( 'Editable' ).setWidth( '90px' ) ); + editableRow.add( editable ); + + container.add( editableRow ); + // VR var vrRow = new UI.Row(); diff --git a/editor/js/libs/app/index.html b/editor/js/libs/app/index.html index 358e4efe78b70b1c7d5e13827dbbe9721ec9a5cd..cc8ac781586d2417938845b86ca3c8ccb64eca49 100644 --- a/editor/js/libs/app/index.html +++ b/editor/js/libs/app/index.html @@ -6,10 +6,25 @@ @@ -20,13 +35,30 @@ var loader = new THREE.XHRLoader(); loader.load( 'app.json', function ( text ) { + var json = JSON.parse( text ); + var player = new APP.Player(); - player.load( JSON.parse( text ) ); + player.load( json ); player.setSize( window.innerWidth, window.innerHeight ); player.play(); document.body.appendChild( player.dom ); + if ( json.project.editable === true ) { + + var button = document.createElement( 'div' ); + button.id = 'edit'; + button.textContent = 'EDIT'; + button.addEventListener( 'click', function ( event ) { + + var url = location.href.split( '/' ).slice( 0, - 1 ).join( '/' ); + location.href = 'http://threejs.org/editor/#file=https://crossorigin.me/' + url + '/app.json'; + + }, false ); + document.body.appendChild( button ); + + } + window.addEventListener( 'resize', function () { player.setSize( window.innerWidth, window.innerHeight ); } );