diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-06-03 16:24:10 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-06-03 16:24:28 -0400 |
| commit | 607f69c67a5b4dc72d2754192e3cdf67d0ad11d0 (patch) | |
| tree | 6556e7922c5bedb274bb1650e5dd100643a7895d /client/assets/javascripts/map/map_editor.js | |
| parent | d31259291d807c851de4396921e0c26b6dd8dce2 (diff) | |
partitioning client and serveR
Diffstat (limited to 'client/assets/javascripts/map/map_editor.js')
| -rw-r--r-- | client/assets/javascripts/map/map_editor.js | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/client/assets/javascripts/map/map_editor.js b/client/assets/javascripts/map/map_editor.js new file mode 100644 index 0000000..754172b --- /dev/null +++ b/client/assets/javascripts/map/map_editor.js @@ -0,0 +1,102 @@ +var editor = new function (){ + + var base = this; + + var cube = null + var cx, cy + + base.init = function(){ + map.on("mousedown", base.mousedown) + map.on("mousemove", base.mousemove) + map.on("mousedrag", base.mousedrag) + map.on("mouseup", base.mouseup) + map.on("mousewheel", base.mousewheel) + document.getElementById("export").addEventListener("keydown", base.stopPropagation) + document.getElementById("export").addEventListener("mousedown", base.stopPropagation) + document.getElementById("export").addEventListener("mousemove", base.stopPropagation) + document.getElementById("export").addEventListener("mouseup", base.stopPropagation) + window.addEventListener('keydown', base.keydown) + } + + base.mousedown = function(e,x,y) { + if (! e.shiftKey) return + cx = x + cy = y + cube = new MX.BoxDimensions({ + x: cx, + y: -10, + z: cy, + width: 1, + height: 1, + depth: 1, + borderWidth: 1, + borderColor: "#000", + color: "#fff" + }) + cube.persisted = false + scene.add( cube ); + } + + base.mousemove = function(e,x,y) { + } + + base.mousedrag = function(e,dx,dy) { + if (! cube) return + cube.x = cx + dx/2 + cube.z = cy + dy/2 + cube.setWidth( abs(dx) ) + cube.setDepth( abs(dy) ) + cube.setHeight( max( cube.width, cube.depth ) ) + cube.update() + } + + base.mouseup = function(e){ + cube = null + } + + base.mousewheel = function(e,x,z,delta){ + if (! e.shiftKey) return; + + scene.inner.children.some(function(s){ + if (s.contains(-x, null, z)) { + s.y += delta * 1000 + s.persisted = false + console.log(s.id) + return true + } + return false + }) + + } + + base.stopPropagation = function(e){ e.stopPropagation() } + + base.exportObjects = function(){ + var s = scene.inner.children + .filter(function(s){ return ! s.persisted }) + .map(function(s){ return s.toString() }) + .join("\n\n") + document.getElementById("export").value = s + } + + base.exportCamera = function(){ + var s = scene.camera.toString() + document.getElementById("export").value = s + console.log(s) + } + + base.keydown = function(e){ + switch (e.keyCode) { + + case 67: // c + base.exportCamera() + break; + + case 86: // v + base.exportObjects() + break; + + } + } + +} |
