summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-04-17 17:40:37 -0400
committerJules Laplace <jules@okfoc.us>2014-04-17 17:40:37 -0400
commit0010a692359ec6ba90aaf2e20d77bfa4016325d5 (patch)
tree2fb7ab7e8bda28217577658e6cc37093b47bc967
parent1b7c036b9a5fdfae8673bd3e3baa44f24c968db3 (diff)
some ctrl-click stuff
-rw-r--r--assets/javascripts/rectangles/_env.js4
-rw-r--r--assets/javascripts/rectangles/engine/builder.js9
-rw-r--r--assets/javascripts/rectangles/engine/clipper.js1
-rw-r--r--assets/javascripts/rectangles/map/ui.js35
-rw-r--r--assets/javascripts/rectangles/util/mouse.js9
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()
}