void AddEntity(EGID egid, uint toIndex) { if (_filtersPerGroup.TryGetValue(egid.groupID, out var groupFilter) == false) { groupFilter = new GroupFilters(32, egid.groupID); _filtersPerGroup[egid.groupID] = groupFilter; } groupFilter.Add(egid.entityID, toIndex); }
public GroupFilters GetOrCreateGroupFilter(ExclusiveGroupStruct group) { if (_filtersPerGroup.TryGetValue(group, out var groupFilter) == false) { groupFilter = new GroupFilters(group); _filtersPerGroup.Add(group, groupFilter); } return(groupFilter); }
ref FilterGroup CreateOrGetFilterForGroup(int filterID, ExclusiveGroupStruct groupID, RefWrapperType refWrapper) { var fasterDictionary = _filters.GetOrCreate(refWrapper, () => new FasterDictionary <ExclusiveGroupStruct, GroupFilters>()); GroupFilters filters = fasterDictionary.GetOrCreate( groupID, () => new GroupFilters(new SharedSveltoDictionaryNative <int, FilterGroup>(0), groupID)); return(ref filters.CreateOrGetFilter(filterID)); }
public bool TryGetFiltersForGroup <T>(ExclusiveGroupStruct groupID, out GroupFilters groupFilters) where T : struct, IEntityComponent { groupFilters = default; if (_filters.TryGetValue(TypeRefWrapper <T> .wrapper, out var fasterDictionary) == false) { return(false); } return(fasterDictionary.TryGetValue(groupID, out groupFilters)); }
public bool TryGetFiltersForGroup <T>(ExclusiveGroupStruct groupID, out GroupFilters groupFilters) where T : struct, IEntityComponent { groupFilters = default; if (_filters.ContainsKey(TypeRefWrapper <T> .wrapper) == false) { return(false); } return(_filters[TypeRefWrapper <T> .wrapper].TryGetValue(groupID, out groupFilters)); }
public bool TryGetGroupFilter(ExclusiveGroupStruct group, out GroupFilters groupFilter) { return(_filtersPerGroup.TryGetValue(group, out groupFilter)); }