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)); }
//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)); }