diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-04-17 17:40:37 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-04-17 17:40:37 -0400 |
| commit | 0010a692359ec6ba90aaf2e20d77bfa4016325d5 (patch) | |
| tree | 2fb7ab7e8bda28217577658e6cc37093b47bc967 | |
| parent | 1b7c036b9a5fdfae8673bd3e3baa44f24c968db3 (diff) | |
some ctrl-click stuff
| -rw-r--r-- | assets/javascripts/rectangles/_env.js | 4 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/builder.js | 9 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/clipper.js | 1 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/map/ui.js | 35 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/util/mouse.js | 9 |
5 files changed, 40 insertions, 18 deletions
diff --git a/assets/javascripts/rectangles/_env.js b/assets/javascripts/rectangles/_env.js index 4964bfa..463fb3e 100644 --- a/assets/javascripts/rectangles/_env.js +++ b/assets/javascripts/rectangles/_env.js @@ -37,8 +37,8 @@ environment.init = function(){ } environment.update = function(t){ if (window.scene && scene.camera) { - map.center.a = scene.camera.x - map.center.b = -scene.camera.z +// map.center.a = scene.camera.x +// map.center.b = -scene.camera.z } else { requestAnimationFrame(environment.update) diff --git a/assets/javascripts/rectangles/engine/builder.js b/assets/javascripts/rectangles/engine/builder.js index ba180d2..7ee85ab 100644 --- a/assets/javascripts/rectangles/engine/builder.js +++ b/assets/javascripts/rectangles/engine/builder.js @@ -12,13 +12,6 @@ var builder = new function(){ base.tube.on("clip", rebuild) } - base.wheel = new wheel({ - el: document.querySelector("#map"), - update: function(e, val, delta){ - console.log(e.clientX, e.clientY, delta) - } - }) - function rebuild(){ if (window.scene) { clear() @@ -112,9 +105,7 @@ var builder = new function(){ var intersected = false for (var i = 0; i < already_constructed.length; i++) { if (already_constructed[i].rect.intersects(r)) { - // probably create extra walls here? intersected = true - if (rm.height < already_constructed[i].height) { list = list.concat( ceiling_walls( rm, already_constructed[i], r ) ) } diff --git a/assets/javascripts/rectangles/engine/clipper.js b/assets/javascripts/rectangles/engine/clipper.js index 2b04a23..79e44e5 100644 --- a/assets/javascripts/rectangles/engine/clipper.js +++ b/assets/javascripts/rectangles/engine/clipper.js @@ -25,6 +25,7 @@ var clipper = new function(){ rooms.push( new room({ id: base.rooms.length, rect: r, + height: quantize(randrange(200,500), 50), }) ) } diff --git a/assets/javascripts/rectangles/map/ui.js b/assets/javascripts/rectangles/map/ui.js index f612fe2..ef96217 100644 --- a/assets/javascripts/rectangles/map/ui.js +++ b/assets/javascripts/rectangles/map/ui.js @@ -12,13 +12,12 @@ map.ui = new function(){ move: move, drag: drag, up: up, + rightclick: rightclick, }) base.wheel = new wheel({ el: base.el, - update: function(e, val, delta){ - // do something with val - }, + update: mousewheel, }) // @@ -27,6 +26,14 @@ map.ui = new function(){ cursor.x.div(map.zoom).add( map.center.a + map.bounds.a/2 ) cursor.y.div(map.zoom).add( -map.center.b - map.bounds.b/2 ) + if (e.ctrlKey) { + map.center.a = cursor.x.b = cursor.x.a + map.bounds.a/2 + map.center.b = cursor.y.b = cursor.y.a + base.mouse.down = false + e.preventDefault() + return + } + var intersects = clipper.rooms.filter(function(r){ return r.focused = r.rect.contains(cursor.x.a, cursor.y.a) }) @@ -65,8 +72,8 @@ map.ui = new function(){ if (base.creating) { if (cursor.height() != 0 && cursor.width() != 0) { - cursor.x.abs() - cursor.y.abs() + cursor.x.abs().quantize(1) + cursor.y.abs().quantize(1) clipper.add_room( cursor ) } } @@ -77,4 +84,20 @@ map.ui = new function(){ base.creating = base.dragging = false } -}
\ No newline at end of file + + function mousewheel (e, val, delta){ + var cursor = base.mouse.cursor + + var intersects = clipper.rooms.filter(function(r){ + return r.focused = r.rect.contains(cursor.x.a, cursor.y.a) + }) + + if (intersects.length) { + intersects[0].height = clamp( ~~(intersects[0].height - delta), 200, 800 ) + clipper.update() + } + } + + function rightclick (e){ + } +} diff --git a/assets/javascripts/rectangles/util/mouse.js b/assets/javascripts/rectangles/util/mouse.js index 8217a1d..a75d46d 100644 --- a/assets/javascripts/rectangles/util/mouse.js +++ b/assets/javascripts/rectangles/util/mouse.js @@ -29,6 +29,7 @@ function mouse (opt) { move: null, drag: null, up: null, + rightclick: null, propagate: false, locked: false, val: 0, @@ -46,6 +47,7 @@ function mouse (opt) { opt.move && base.tube.on("move", opt.move) opt.drag && base.tube.on("drag", opt.drag) opt.up && base.tube.on("up", opt.up) + opt.rightclick && base.tube.on("rightclick", opt.rightclick) base.init = function (){ base.bind() @@ -55,6 +57,7 @@ function mouse (opt) { opt.el.addEventListener("mousedown", base.mousedown) window.addEventListener("mousemove", base.mousemove) window.addEventListener("mouseup", base.mouseup) + opt.el.addEventListener("contextmenu", base.contextmenu) } function positionFromMouse(e) { @@ -110,7 +113,11 @@ function mouse (opt) { base.tube("up", e, base.cursor, new_cursor) base.cursor = new_cursor } - } + } + base.contextmenu = function(e){ + e.preventDefault() + base.tube("rightclick", e, base.cursor) + } base.init() } |
