summaryrefslogtreecommitdiff
path: root/client/assets/javascripts/map/map_editor.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-03 16:24:10 -0400
committerJules Laplace <jules@okfoc.us>2014-06-03 16:24:28 -0400
commit607f69c67a5b4dc72d2754192e3cdf67d0ad11d0 (patch)
tree6556e7922c5bedb274bb1650e5dd100643a7895d /client/assets/javascripts/map/map_editor.js
parentd31259291d807c851de4396921e0c26b6dd8dce2 (diff)
partitioning client and serveR
Diffstat (limited to 'client/assets/javascripts/map/map_editor.js')
-rw-r--r--client/assets/javascripts/map/map_editor.js102
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;
+
+ }
+ }
+
+}