示例#1
0
        public bool Equals(FilterRules filter)
        {
            if (_filterTags.Count == filter._filterTags.Count && _componentsToFilterOn.Count == filter._componentsToFilterOn.Count)
            {
                for (int i = 0, c = _filterTags.Count; i < c; i++)
                {
                    TagRule ownRule = _filterTags[i];
                    if (filter._filterTags.FindIndex(fc => ownRule.IsEqual(fc)) < 0)
                    {
                        return(false);
                    }
                }

                for (int i = 0, c = _componentsToFilterOn.Count; i < c; i++)
                {
                    IncComponentRule ownRule = _componentsToFilterOn[i];
                    if (filter._componentsToFilterOn.FindIndex(fc => ownRule.IsEqual(fc)) < 0)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            return(false);
        }
示例#2
0
 private EntityFilter(FilterRules filter)
 {
     FilterRules = filter;
     EntityTracker.Instance.TagAddedEvent          += OnEntityAddedTagEvent;
     EntityTracker.Instance.TagRemovedEvent        += OnEntityRemovedTagEvent;
     EntityTracker.Instance.AddedComponentEvent    += OnEntityAddedComponentEvent;
     EntityTracker.Instance.RemovedComponentEvent  += OnEntityRemovedComponentEvent;
     EntityTracker.Instance.EnabledComponentEvent  += OnEntityChangedEnabledStateOfComponentEvent;
     EntityTracker.Instance.DisabledComponentEvent += OnEntityChangedEnabledStateOfComponentEvent;
     EntityTracker.Instance.TrackedEvent           += OnEntityTrackedEvent;
     EntityTracker.Instance.UntrackedEvent         += OnEntityUntrackedEvent;
     FillWithAlreadyExistingMatches();
 }
 private FilterRulesBuilder(FilterRules filterRules)
 {
     _filterTags           = new List <TagRule>(filterRules.GetTagRules());
     _componentsToFilterOn = new List <IncComponentRule>(filterRules.GetIncComponentRules());
 }
 /// <summary>
 /// Creates a FilterRulesBuilder which builds upon a FilterRules that is a copy of the given FilterRules
 /// </summary>
 /// <returns>FilterRulesBuilder</returns>
 public static FilterRulesBuilder SetupFromFilterRules(FilterRules filterRules)
 {
     return(new FilterRulesBuilder(filterRules));
 }