private void OnAddedComponents(object?sender, EntityComponentsChangeEventArgs <TEntityId, TComponentKind> args) { _ = sender; var allComponentKinds = _componentKindsByEntity[args.EntityId]; _componentKindManager.Add(allComponentKinds, args.ComponentKinds); UpdateEntitiesByQueryOnAddedComponents(args.EntityId, allComponentKinds, args.ComponentKinds); }
public QueryId CreateQuery(IEnumerable <TComponentKind> all, IEnumerable <TComponentKind> any, IEnumerable <TComponentKind> none) { var allSet = _componentKindManager.Create(); _componentKindManager.Add(allSet, all); var anySet = _componentKindManager.Create(); _componentKindManager.Add(anySet, any); var noneSet = _componentKindManager.Create(); _componentKindManager.Add(noneSet, none); return(_queryStorage.AddQuery( new Query <TComponentKindSet> ( allSet, anySet, noneSet ) )); }