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); }
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)); }