diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-04-22 18:39:14 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-04-22 18:39:14 -0400 |
| commit | f94cf0d133a5d426a20cb5ac7eeb60f72b690119 (patch) | |
| tree | b605578151d9d1118dc8921845d9bc205a6f1f3b /assets/javascripts/rectangles/engine | |
| parent | d08f365e4deb3206fd3361c7395268983510d831 (diff) | |
turn on gravity
Diffstat (limited to 'assets/javascripts/rectangles/engine')
| -rw-r--r-- | assets/javascripts/rectangles/engine/builder.js | 10 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/clipper.js | 2 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/mover.js | 31 |
3 files changed, 40 insertions, 3 deletions
diff --git a/assets/javascripts/rectangles/engine/builder.js b/assets/javascripts/rectangles/engine/builder.js index 2b8734a..8e1508a 100644 --- a/assets/javascripts/rectangles/engine/builder.js +++ b/assets/javascripts/rectangles/engine/builder.js @@ -1,6 +1,5 @@ var builder = new function(){ var base = this - base.tube = new Tube () var els = [] @@ -9,7 +8,7 @@ var builder = new function(){ } base.bind = function(){ - base.tube.on("clip", rebuild) + app.on("clip", rebuild) } function rebuild(){ @@ -20,6 +19,10 @@ var builder = new function(){ } function build (){ clipper.rooms = sort_rooms_by_id(clipper.rooms) + clipper.rooms.forEach(function(r){ + r.walls = [] + r.floors = [] + }) clipper.regions.forEach(function(r){ walls(r).forEach(function(el){ els.push(el) @@ -203,6 +206,9 @@ var builder = new function(){ el.z = r.y.a + depth/2 el.rotationX = PI/2 el.el.style.backgroundColor = "#f00" + + rm.floors.push(el) + return el } function ceiling(rm, r){ diff --git a/assets/javascripts/rectangles/engine/clipper.js b/assets/javascripts/rectangles/engine/clipper.js index 79e44e5..bcd0586 100644 --- a/assets/javascripts/rectangles/engine/clipper.js +++ b/assets/javascripts/rectangles/engine/clipper.js @@ -18,7 +18,7 @@ var clipper = new function(){ base.update = function(){ clipper.solve_rects() - builder.tube("clip") + app.tube("clip") } base.add_room = function(r){ diff --git a/assets/javascripts/rectangles/engine/mover.js b/assets/javascripts/rectangles/engine/mover.js new file mode 100644 index 0000000..ebe4447 --- /dev/null +++ b/assets/javascripts/rectangles/engine/mover.js @@ -0,0 +1,31 @@ +var mover = new function(){ + + var base = this + var last_room = null + + base.init = function(){ + last_room = clipper.rooms[0] + base.bind() + } + + base.bind = function(){ + app.on("move", base.update) + } + + base.update = function(pos){ + if (last_room && last_room.rect.contains(pos.x, pos.z)) return; + + var intersects = [] + clipper.rooms.forEach(function(r){ + if (r.rect.contains(pos.x, pos.z)) { + intersects.push(r) + } + }) + + if (intersects.length) { + $(".face.active").removeClass("active") + last_room = intersects[0] + } + } + +} |
