summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/rooms
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/rooms')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js6
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/clipper.js8
2 files changed, 9 insertions, 5 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index f7fad3e..4ad3e2c 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -13,8 +13,8 @@
vec2 = require('../../models/vec2')
Rect = require('../../models/rect')
Room = require('../../models/room')
- sort = require('../../util/sort')
UidGenerator = require('../../util/uid')
+ sort = require('../../util/sort')
_ = require('lodash')
FRONT = 0x1, BACK = 0x2, LEFT = 0x4, RIGHT = 0x8, FLOOR = 0x10, CEILING = 0x20
TOP = CEILING, BOTTOM = FLOOR
@@ -38,6 +38,8 @@
base.walls = {}
base.regions = []
+ UidGenerator.setList(base.list)
+
base.init = function(){
Rooms.builder.init()
Rooms.clipper.init()
@@ -116,8 +118,6 @@
return []
}
- base.uid = UidGenerator(base.list)
-
base.sorted_by_position = function(){
return sort.rooms_by_position( base.values() )
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
index cd45479..365ae8c 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
@@ -41,7 +41,7 @@
app.tube("clip")
}
- var rooms, regions
+ var regions
// Given a set of overlapping rooms, clip any intersections, then cull any duplicate polygons
base.solve_rects = function(){
@@ -59,6 +59,7 @@
// Reset the clipping/culling states of each of the rooms
base.reset_rects = function(){
+ regions = []
Rooms.forEach(function(room){
room.reset()
})
@@ -67,7 +68,6 @@
// Compare each room to the rooms it overlaps, and subdivide
base.clip_rects = function(){
var rooms = Rooms.sorted_by_position()
- regions = []
var left, right
for (var i = 0; i < rooms.length; i++) {
@@ -89,6 +89,8 @@
rooms[i].regions = rooms[i].regions.filter(function(r){ return !!r })
regions = regions.concat(rooms[i].regions)
}
+
+ return regions
}
// Find overlapping regions (of the same size) and dedupe
@@ -125,6 +127,8 @@
ttx.data = new Tree (regions[i].y.a, [regions[i]])
}
}
+
+ return regions
}
return base