summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-10 15:45:32 -0400
committerJules Laplace <jules@okfoc.us>2014-06-10 15:45:32 -0400
commita5ba8d536afe5c96c6e01763296de2a407f81aa8 (patch)
tree1d575718f9fa4094f304d1687dcbb7ad43a5fe7a /public/assets/javascripts/rectangles/engine/rooms/_rooms.js
parenta91321725a3a2db451055ee7d5e4a40576b83c5c (diff)
switch to using a lookup for rooms
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/rooms/_rooms.js')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js30
1 files changed, 22 insertions, 8 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 411a093..efde370 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -2,7 +2,7 @@ var Rooms = new function(){
var base = this
- base.list = []
+ base.list = {}
base.regions = []
base.init = function(){
@@ -12,30 +12,44 @@ var Rooms = new function(){
}
base.filter = function(f){
- return base.list.filter(f)
+ return _.values(base.list).filter(f)
+ }
+
+ base.add = function(room){
+ base.list[room.id] = room
}
base.add_with_rect = function(rect){
var room = new Room({
- id: base.list.length,
rect: rect,
height: quantize(randrange(300,800), 50),
})
- base.list.push(room)
+ base.add(room)
+ }
+
+ base.remove = function(room){
+ delete base.list[room.id]
+ }
+
+ base.count = function(){
+ return this.values().length
}
base.forEach = function(f){
- return base.list.forEach(f)
+ return base.values().forEach(f)
+ }
+ base.values = function(){
+ return _.values(base.list)
}
base.sorted_by_position = function(){
- return sort_rooms_by_position( base.list )
+ return sort_rooms_by_position( base.values() )
}
base.sorted_by_height = function(){
- return sort_rooms_by_height( base.list )
+ return sort_rooms_by_height( base.values() )
}
base.sorted_by_area = function(){
- return sort_rooms_by_area( base.list )
+ return sort_rooms_by_area( base.values() )
}
}