summaryrefslogtreecommitdiffhomepage
path: root/lib/felflame
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-01-03 08:19:24 -0500
committerrealtradam <[email protected]>2022-01-03 08:19:24 -0500
commitaad51d646812804052ce2ae5e926b667b4e24d6d (patch)
treee083c5fe4b8a388c87eab8ce955b966ebab22238 /lib/felflame
parent55f1db30e7a609cebd2fab27c55ece1da45be232 (diff)
downloadFelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.tar.gz
FelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.zip
.
Diffstat (limited to 'lib/felflame')
-rw-r--r--lib/felflame/component_manager.rb22
-rw-r--r--lib/felflame/order.rb19
2 files changed, 18 insertions, 23 deletions
diff --git a/lib/felflame/component_manager.rb b/lib/felflame/component_manager.rb
index 04faccb..6ac7463 100644
--- a/lib/felflame/component_manager.rb
+++ b/lib/felflame/component_manager.rb
@@ -48,28 +48,6 @@ module FelFlame
FelFlame::Components.const_get(component_name)
end
- # Makes component module behave like an array of component
- # managers with additional methods for managing the array
- # @!visibility private
- # #def respond_to_missing?(method, *)
- # if constants.respond_to? method
- # true
- # else
- # super
- # end
- # end
-
- ## Makes component module behave like arrays with additional
- ## methods for managing the array
- ## @!visibility private
- # def method_missing(method, *args, **kwargs, &block)
- # if constants.respond_to? method
- # constants.send(method, *args, **kwargs, &block)
- # else
- # super
- # end
- # end
-
# Stores the components managers in {FelFlame::Components}. This
# is needed because calling `FelFlame::Components.constants`
# will not let you iterate over the value of the constants
diff --git a/lib/felflame/order.rb b/lib/felflame/order.rb
index 0bed66b..3202b25 100644
--- a/lib/felflame/order.rb
+++ b/lib/felflame/order.rb
@@ -1,6 +1,23 @@
module FelFlame
module Order
- def sort(*sortables)
+
+ # Sets the priority of all items passed into this method
+ # according to the order they were passed.
+ # If an array is one of the elements then it will give all
+ # of those elements in the array the same priority.
+ # @param sortables [(Systems and Array<Systems>) or (Scenes and Array<Scenes>)]
+ # @return [Boolean] +true+.
+ def self.sort(*sortables)
+ sortables.each_with_index do |sorted, index|
+ if sorted.respond_to? :priority
+ sorted.priority = index
+ else
+ sorted.each do |item|
+ item.priority = index
+ end
+ end
+ end
+ true
end
end
end