summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-20 16:57:36 -0400
committerJules Laplace <jules@okfoc.us>2014-06-20 16:57:44 -0400
commit850c4202885867350ecccc88a4f315d6196a7326 (patch)
treecd5d09042b00596c95c2787e6fab29309a8b522c /public/assets/javascripts/rectangles/engine/scenery/_scenery.js
parent1668d6e2e20c9bd53f3f6a299541c582da9742b4 (diff)
delete/resize media
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/scenery/_scenery.js')
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/_scenery.js27
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