summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/engine
diff options
context:
space:
mode:
Diffstat (limited to 'assets/javascripts/rectangles/engine')
-rw-r--r--assets/javascripts/rectangles/engine/builder.js15
-rw-r--r--assets/javascripts/rectangles/engine/clipper.js12
-rw-r--r--assets/javascripts/rectangles/engine/mover.js2
-rw-r--r--assets/javascripts/rectangles/engine/rooms.js31
-rw-r--r--assets/javascripts/rectangles/engine/scenery.js4
5 files changed, 41 insertions, 23 deletions
diff --git a/assets/javascripts/rectangles/engine/builder.js b/assets/javascripts/rectangles/engine/builder.js
index dcd89dc..9894333 100644
--- a/assets/javascripts/rectangles/engine/builder.js
+++ b/assets/javascripts/rectangles/engine/builder.js
@@ -1,5 +1,5 @@
-var builder = new function(){
+var Builder = new function(){
var base = this
var els = []
@@ -20,28 +20,23 @@ var builder = new function(){
}
}
function build (){
- clipper.rooms = sort_rooms_by_id(clipper.rooms)
-
- clipper.regions.forEach(function(room){
+ Rooms.regions.forEach(function(room){
build_walls(room).forEach(function(el){
els.push(el)
scene.add(el)
})
})
- clipper.rooms = sort_rooms_by_height(clipper.rooms)
- clipper.rooms.forEach(function(room){
+ Rooms.sort_by_height().forEach(function(room){
build_floors(room).forEach(function(el){
els.push(el)
scene.add(el)
})
})
-
- clipper.rooms = sort_rooms_by_id(clipper.rooms)
}
function bind (){
- clipper.rooms.forEach(function(room){
+ Rooms.forEach(function(room){
room.walls = room.group_mx_walls()
room.walls.forEach(function(wall){
wall.bind()
@@ -59,7 +54,7 @@ var builder = new function(){
}
function build_walls (region){
- var room = clipper.rooms[ region.id ]
+ var room = Rooms.list[ region.id ]
var list = [], el = null
diff --git a/assets/javascripts/rectangles/engine/clipper.js b/assets/javascripts/rectangles/engine/clipper.js
index 68fad15..01a4921 100644
--- a/assets/javascripts/rectangles/engine/clipper.js
+++ b/assets/javascripts/rectangles/engine/clipper.js
@@ -1,5 +1,5 @@
-var clipper = new function(){
+var Clipper = new function(){
var base = this
var rooms = base.rooms = []
@@ -17,18 +17,10 @@ var clipper = new function(){
}
base.update = function(){
- clipper.solve_rects()
+ Clipper.solve_rects()
app.tube("clip")
}
- base.add_room = function(rect){
- rooms.push( new Room({
- id: base.rooms.length,
- rect: rect,
- height: quantize(randrange(300,800), 50),
- }) )
- }
-
base.solve_rects = function(){
if (base.rooms.length == 0) return;
diff --git a/assets/javascripts/rectangles/engine/mover.js b/assets/javascripts/rectangles/engine/mover.js
index 12edeff..3cf214f 100644
--- a/assets/javascripts/rectangles/engine/mover.js
+++ b/assets/javascripts/rectangles/engine/mover.js
@@ -65,7 +65,7 @@ var mover = new function(){
cam.z = pos.z
// determine what room we are in now
- var intersects = clipper.rooms.filter(function(r){
+ var intersects = Rooms.filter(function(r){
return r.rect.contains(pos.x, pos.z)
})
diff --git a/assets/javascripts/rectangles/engine/rooms.js b/assets/javascripts/rectangles/engine/rooms.js
new file mode 100644
index 0000000..642193e
--- /dev/null
+++ b/assets/javascripts/rectangles/engine/rooms.js
@@ -0,0 +1,31 @@
+var Rooms = new function(){
+
+ var base = this
+
+ base.list = []
+ base.regions = []
+
+ base.init = function(){
+ Builder.init()
+ Clipper.init()
+ Mover.init()
+ }
+
+ base.filter = function(f){
+ return base.list.filter(f)
+ }
+
+ base.add_with_rect = function(rect){
+ var room = new Room({
+ id: base.rooms.length,
+ rect: rect,
+ height: quantize(randrange(300,800), 50),
+ })
+ base.list.push(room)
+ }
+
+ base.forEach = function(f){
+ return base.list.forEach(f)
+ }
+
+}
diff --git a/assets/javascripts/rectangles/engine/scenery.js b/assets/javascripts/rectangles/engine/scenery.js
index faeaf6b..3a43755 100644
--- a/assets/javascripts/rectangles/engine/scenery.js
+++ b/assets/javascripts/rectangles/engine/scenery.js
@@ -30,7 +30,7 @@ var scenery = new function(){
img.height = ~~(300 * img.naturalHeight/img.naturalWidth)
})
- clipper.rooms.forEach(function(room){
+ Rooms.forEach(function(room){
room.walls.forEach(function(wall){
new_image(wall, choice(images))
})
@@ -45,7 +45,7 @@ var scenery = new function(){
var mx_img = new MX.Image({
src: img.src,
x: 0,
- y: clipper.rooms[wall.room].height/2 - img.height/2 - 20,
+ y: Rooms.list[wall.room].height/2 - img.height/2 - 20,
z: 0,
scale: 300/img.naturalWidth,
rotationY: 0,