diff options
Diffstat (limited to 'lib/felecs/system_manager.rb')
| -rw-r--r-- | lib/felecs/system_manager.rb | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/lib/felecs/system_manager.rb b/lib/felecs/system_manager.rb index 6cd260b..2d56336 100644 --- a/lib/felecs/system_manager.rb +++ b/lib/felecs/system_manager.rb @@ -159,28 +159,28 @@ module FelECS if trigger_types.include? :attr_triggers if (trigger_types - %i[addition_triggers - removal_triggers - attr_triggers]).empty? + removal_triggers + attr_triggers]).empty? - if component_or_manager.nil? - # remove all attrs - attr_triggers.each do |cmp_or_mgr, attrs| - attrs.each do |attr| - next if cmp_or_mgr.attr_triggers[attr].nil? + if component_or_manager.nil? + # remove all attrs + attr_triggers.each do |cmp_or_mgr, attrs| + attrs.each do |attr| + next if cmp_or_mgr.attr_triggers[attr].nil? - cmp_or_mgr.attr_triggers[attr].delete self - end - self.attr_triggers = {} + cmp_or_mgr.attr_triggers[attr].delete self end - else - # remove attrs relevant to comp_or_man - unless attr_triggers[component_or_manager].nil? - attr_triggers[component_or_manager].each do |attr| - component_or_manager.attr_triggers[attr].delete self - end - attr_triggers[component_or_manager] = [] + self.attr_triggers = {} + end + else + # remove attrs relevant to comp_or_man + unless attr_triggers[component_or_manager].nil? + attr_triggers[component_or_manager].each do |attr| + component_or_manager.attr_triggers[attr].delete self end + attr_triggers[component_or_manager] = [] end + end elsif component_or_manager.nil? @@ -191,8 +191,8 @@ module FelECS end end attr_triggers.delete(trigger_types - %i[addition_triggers - removal_triggers - attr_triggers]) + removal_triggers + attr_triggers]) else # remove attr from component_or_manager (trigger_types - %i[addition_triggers removal_triggers attr_triggers]).each do |attr| |
