summaryrefslogtreecommitdiffhomepage
path: root/lib/felflame/scene_manager.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-01-20 22:41:04 -0500
committerrealtradam <[email protected]>2022-01-20 22:41:04 -0500
commit9ae334ecc6aaef009f14c0bb8b57afcb721f709b (patch)
treed1d41747a0a4fcde281919933ce59757a4b5e7ce /lib/felflame/scene_manager.rb
parentf003a1acc5dac70b267685701a3b130773310e0b (diff)
downloadFelECS-9ae334ecc6aaef009f14c0bb8b57afcb721f709b.tar.gz
FelECS-9ae334ecc6aaef009f14c0bb8b57afcb721f709b.zip
rename to FelECS
Diffstat (limited to 'lib/felflame/scene_manager.rb')
-rw-r--r--lib/felflame/scene_manager.rb69
1 files changed, 0 insertions, 69 deletions
diff --git a/lib/felflame/scene_manager.rb b/lib/felflame/scene_manager.rb
deleted file mode 100644
index 0024815..0000000
--- a/lib/felflame/scene_manager.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-# frozen_string_literal: true
-
-module FelFlame
- class Scenes
- # Allows overwriting the storage of systems, such as for clearing.
- # This method should generally only need to be used internally and
- # not by a game developer/
- # @!visibility private
- attr_writer :systems
-
- # How early this Scene should be executed in a list of Scenes
- attr_accessor :priority
-
- def priority=(priority)
- @priority = priority
- FelFlame::Stage.scenes = FelFlame::Stage.scenes.sort_by(&:priority)
- priority
- end
-
- # Create a new Scene using the name given
- # @param name [String] String format must follow requirements of a constant
- def initialize(name, priority: 0)
- self.priority = priority
- FelFlame::Scenes.const_set(name, self)
- end
-
- # The list of Systems this Scene contains
- # @return [Array<System>]
- def systems
- @systems ||= []
- end
-
- # Execute all systems in this Scene, in the order of their priority
- # @return [Boolean] +true+
- def call
- systems.each(&:call)
- true
- end
-
- # Adds any number of Systems to this Scene
- # @return [Boolean] +true+
- def add(*systems_to_add)
- self.systems |= systems_to_add
- self.systems = systems.sort_by(&:priority)
- systems_to_add.each do |system|
- system.scenes |= [self]
- end
- true
- end
-
- # Removes any number of Systems from this Scene
- # @return [Boolean] +true+
- def remove(*systems_to_remove)
- self.systems -= systems_to_remove
- true
- end
-
- # 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
- end
- end
-end