public ReadOnlySpan <Entity> GetEntities(EntityArchetype archetype) // Buffered? { Archetype * ptr = GetArchetypeInternal(archetype); Span <Entity> entities = new Entity[ptr->entityCount]; ChunkUtility.WriteEntitiesToBuffer(ptr->chunkArray->chunks, ptr->chunkArray->count, entities); return(entities); }
public ReadOnlySpan <Entity> GetEntities(EntityQuery query) { var queryData = GetUpdatedQueryData(query); var archetypes = queryData->archetypes; var archetypeCount = queryData->archetypeCount; var entityCount = 0; for (int i = 0; i < archetypeCount; ++i) { entityCount += archetypes[i]->entityCount; } int entitiesInBuffer = 0; Span <Entity> entities = new Entity[entityCount]; for (int i = 0; i < archetypeCount; ++i) { var chunks = archetypes[i]->chunkArray->chunks; var chunkCount = archetypes[i]->chunkArray->count; entitiesInBuffer += ChunkUtility.WriteEntitiesToBuffer(chunks, chunkCount, entities.Slice(entitiesInBuffer)); } return(entities); }