summaryrefslogtreecommitdiffhomepage
path: root/lib/felflame/scene_manager.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/felflame/scene_manager.rb')
-rw-r--r--lib/felflame/scene_manager.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/felflame/scene_manager.rb b/lib/felflame/scene_manager.rb
index a9d3ac7..06a0dfa 100644
--- a/lib/felflame/scene_manager.rb
+++ b/lib/felflame/scene_manager.rb
@@ -34,8 +34,11 @@ module FelFlame
def add(*systems_to_add)
self.systems |= systems_to_add
self.systems = systems.sort_by(&:priority)
- FelFlame::Stage.update_systems_list if FelFlame::Stage.scenes.include? self
- true
+ systems_to_add.each do |system|
+ system.scenes |= [self]
+ end
+ #FelFlame::Stage.update_systems_list if FelFlame::Stage.scenes.include? self
+ #true
end
# Removes any number of Systems from this Scene
@@ -43,6 +46,9 @@ module FelFlame
def remove(*systems_to_remove)
self.systems -= systems_to_remove
self.systems = systems.sort_by(&:priority)
+ systems_to_remove.each do |system|
+ system.scenes.delete system
+ end
FelFlame::Stage.update_systems_list if FelFlame::Stage.scenes.include? self
true
end
@@ -50,6 +56,9 @@ module FelFlame
# Removes all Systems from this Scene
# @return [Boolean] +true+
def clear
+ systems.each do |system|
+ system.scenes.delete self
+ end
systems.clear
FelFlame::Stage.update_systems_list if FelFlame::Stage.scenes.include? self
true