diff options
Diffstat (limited to 'assets/javascripts/rectangles/engine')
| -rw-r--r-- | assets/javascripts/rectangles/engine/builder.js | 15 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/clipper.js | 12 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/mover.js | 2 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/rooms.js | 31 | ||||
| -rw-r--r-- | assets/javascripts/rectangles/engine/scenery.js | 4 |
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, |
