コード例 #1
0
        private IEnumerable <EntityRef> iterateEntities(Type componentClass)
        {
            TIntList idList = new TIntArrayList();
//JAVA TO C# CONVERTER TODO TASK: Java wildcard generics are not converted to .NET:
//ORIGINAL LINE: gnu.trove.iterator.TIntObjectIterator<? extends org.terasology.entitySystem.Component> primeIterator = store.componentIterator(componentClass);
            TIntObjectIterator <?> primeIterator = store.componentIterator(componentClass);

            if (primeIterator == null)
            {
                return(Collections.emptyList());
            }

            while (primeIterator.hasNext())
            {
                primeIterator.advance();
                int id = primeIterator.key();
                idList.add(primeIterator.key());
            }
            return(new EntityIterable(this, idList));
        }
コード例 #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SafeVarargs @Override public final Iterable<org.terasology.entitySystem.entity.EntityRef> getEntitiesWith(Class... componentClasses)
        public override IEnumerable <EntityRef> getEntitiesWith(params Type[] componentClasses)
        {
            if (componentClasses.Length == 0)
            {
                return(AllEntities);
            }
            if (componentClasses.Length == 1)
            {
                return(iterateEntities(componentClasses[0]));
            }
            TIntList idList = new TIntArrayList();
//JAVA TO C# CONVERTER TODO TASK: Java wildcard generics are not converted to .NET:
//ORIGINAL LINE: gnu.trove.iterator.TIntObjectIterator<? extends org.terasology.entitySystem.Component> primeIterator = store.componentIterator(componentClasses[0]);
            TIntObjectIterator <?> primeIterator = store.componentIterator(componentClasses[0]);

            if (primeIterator == null)
            {
                return(Collections.emptyList());
            }

            while (primeIterator.hasNext())
            {
                primeIterator.advance();
                int  id      = primeIterator.key();
                bool discard = false;
                for (int i = 1; i < componentClasses.Length; ++i)
                {
                    if (store.get(id, componentClasses[i]) == null)
                    {
                        discard = true;
                        break;
                    }
                }
                if (!discard)
                {
                    idList.add(primeIterator.key());
                }
            }
            return(new EntityIterable(this, idList));
        }