コード例 #1
0
        public static bool Add <N>(this LegacyFilterGroup legacyFilter, uint entityID, N mapper) where N : IEGIDMultiMapper
        {
        #if DEBUG && !PROFILE_SVELTO
            if (mapper.Exists(legacyFilter._exclusiveGroupStruct, entityID) == false)
            {
                throw new ECSException(
                          $"trying adding an entity {entityID} to filter {mapper.entityType} - {legacyFilter._ID} with group {legacyFilter._exclusiveGroupStruct}, but entity is not found! ");
            }
        #endif

            return(legacyFilter.InternalAdd(entityID, mapper.GetIndex(legacyFilter._exclusiveGroupStruct, entityID)));
        }
コード例 #2
0
            public bool TryGetFilterForGroup <T>(int filterId, ExclusiveGroupStruct groupID,
                                                 out LegacyFilterGroup groupLegacyFilter) where T : struct, IBaseEntityComponent
            {
                groupLegacyFilter = default;

                if (_filtersLegacy.TryGetValue(TypeRefWrapper <T> .wrapper, out var fasterDictionary) == false)
                {
                    return(false);
                }

                if (fasterDictionary.TryGetValue(groupID, out var groupFilters) == false)
                {
                    return(false);
                }

                if (groupFilters.TryGetFilter(filterId, out groupLegacyFilter) == false)
                {
                    return(false);
                }

                return(true);
            }
コード例 #3
0
 public bool TryGetFilter(int filterIndex, out LegacyFilterGroup legacyFilter)
 {
     return(_legacyFilters.TryGetValue(filterIndex, out legacyFilter));
 }