diff options
Diffstat (limited to 'public/assets/javascripts')
7 files changed, 33 insertions, 19 deletions
diff --git a/public/assets/javascripts/mx/mx.js b/public/assets/javascripts/mx/mx.js index df9abe7..496aec0 100644 --- a/public/assets/javascripts/mx/mx.js +++ b/public/assets/javascripts/mx/mx.js @@ -472,7 +472,7 @@ var MX = MX || (function (undefined) { }, __toString: function(params, func){ - this.id = this.id || guid() + this.id = this.id || _.uniqueId() var list = [], obj = {}, type = this.type || "Object3d", diff --git a/public/assets/javascripts/mx/primitives/mx.boxDimensions.js b/public/assets/javascripts/mx/primitives/mx.boxDimensions.js index f3edb13..1d457ae 100644 --- a/public/assets/javascripts/mx/primitives/mx.boxDimensions.js +++ b/public/assets/javascripts/mx/primitives/mx.boxDimensions.js @@ -7,7 +7,7 @@ MX.BoxDimensions = MX.Object3D.extend({ this.type = "BoxDimensions" - var id = this.id = opt.id || guid() + var id = this.id = opt.id || _.uniqueId() this.x = opt.x || 0 this.y = opt.y || 0 this.z = opt.z || 0 diff --git a/public/assets/javascripts/mx/primitives/mx.scaleBox.js b/public/assets/javascripts/mx/primitives/mx.scaleBox.js index 77f45e9..f635345 100644 --- a/public/assets/javascripts/mx/primitives/mx.scaleBox.js +++ b/public/assets/javascripts/mx/primitives/mx.scaleBox.js @@ -7,7 +7,7 @@ MX.ScaleBox = MX.Object3D.extend({ this.type = "ScaleBox" - var id = this.id = opt.id || guid() + var id = this.id = opt.id || _.uniqueId() this.x = opt.x || 0 this.y = opt.y || 0 this.z = opt.z || 0 diff --git a/public/assets/javascripts/rectangles/_env.js b/public/assets/javascripts/rectangles/_env.js index 334e461..86aebdc 100644 --- a/public/assets/javascripts/rectangles/_env.js +++ b/public/assets/javascripts/rectangles/_env.js @@ -22,15 +22,15 @@ environment.init = function(){ map.center.a = 0 map.center.b = 0 - Rooms.list.push( new Room ({ + Rooms.add( new Room ({ rect: new Rect(-500,-500, 500,500), height: 500, })) - Rooms.list.push( new Room ({ + Rooms.add( new Room ({ rect: new Rect(600,0, 1100,500), height: 500, })) - Rooms.list.push( new Room ({ + Rooms.add( new Room ({ rect: new Rect(450,150, 650,350), height: 300, })) 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() ) } } diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js index 8989ba8..0854013 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js +++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js @@ -20,7 +20,7 @@ Rooms.clipper = new function(){ // Given a set of overlapping rooms, clip any intersections, then cull any duplicate polygons base.solve_rects = function(){ - if (Rooms.list.length == 0) return + if (Rooms.count() == 0) return base.reset_rects() base.clip_rects() @@ -31,9 +31,9 @@ Rooms.clipper = new function(){ // Reset the clipping/culling states of each of the rooms base.reset_rects = function(){ - for (var i = 0; i < Rooms.list.length; i++) { - Rooms.list[i].reset() - } + Rooms.forEach(function(room){ + room.reset() + }) } // Compare each room to the rooms it overlaps, and subdivide diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js index 731411c..256889d 100644 --- a/public/assets/javascripts/rectangles/models/room.js +++ b/public/assets/javascripts/rectangles/models/room.js @@ -1,7 +1,7 @@ window.Room = (function(){ var Room = function(opt){ - this.id = opt.id || Rooms.list.length + this.id = opt.id || _.uniqueId("room") this.rect = opt.rect this.regions = [] this.walls = [] |
