Example #1
0
        private EntityGroupData *GetCachedGroupData(uint hash, ComponentType *requiredTypes,
                                                    int requiredCount)
        {
            NativeMultiHashMapIterator <uint> it;
            IntPtr grpPtr;

            if (!m_GroupLookup.TryGetFirstValue(hash, out grpPtr, out it))
            {
                return(null);
            }
            do
            {
                var grp = (EntityGroupData *)grpPtr;
                if (ComponentType.CompareArray(grp->RequiredComponents, grp->RequiredComponentsCount, requiredTypes,
                                               requiredCount))
                {
                    return(grp);
                }
            } while (m_GroupLookup.TryGetNextValue(out grpPtr, ref it));

            return(null);
        }