diff options
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/scenery/_scenery.js')
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/_scenery.js | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js index 3fe6b66..143a4d9 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js +++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js @@ -3,7 +3,7 @@ var Scenery = new function(){ var base = this; - base.media = [] + base.list = {} base.nextMedia = null base.mouse = new mouse ({ use_offset: false }) @@ -25,7 +25,7 @@ var Scenery = new function(){ break } - base.media.push(scene_media) + base.list[scene_media.id] = scene_media return scene_media } @@ -35,14 +35,27 @@ var Scenery = new function(){ } base.remove = function(id){ - var removed = _.remove(base.media, function(media){ return media.id == id }) - removed.forEach(function(media){ - // cleanup - }) + var media = base.list[id] + delete base.list[id] + media && media.destroy() + } + + base.uid = UidGenerator(base.list) + + base.forEach = function(f){ + return base.values().forEach(f) + } + + base.map = function(f){ + return base.values().map(f) + } + + base.values = function(){ + return _.values(base.list) } base.serialize = function(){ - var scenery = base.media.map(function(media){ + var scenery = base.map(function(media){ return media.serialize() }) return scenery |
