diff options
| author | realtradam <[email protected]> | 2022-01-03 08:19:24 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2022-01-03 08:19:24 -0500 |
| commit | aad51d646812804052ce2ae5e926b667b4e24d6d (patch) | |
| tree | e083c5fe4b8a388c87eab8ce955b966ebab22238 /lib/felflame | |
| parent | 55f1db30e7a609cebd2fab27c55ece1da45be232 (diff) | |
| download | FelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.tar.gz FelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.zip | |
.
Diffstat (limited to 'lib/felflame')
| -rw-r--r-- | lib/felflame/component_manager.rb | 22 | ||||
| -rw-r--r-- | lib/felflame/order.rb | 19 |
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 |
