diff options
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/rooms/_rooms.js')
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/rooms/_rooms.js | 30 |
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() ) } } |
