queryRaw method

List<Component> queryRaw(
  1. QueryParams params
)

Implementation

List<Component> queryRaw(QueryParams params) {
  final queryRows = <Component>[];
  if (!params.activate(this)) return queryRows;

  final columns = List<int>.filled(params.componentIDs.length, 0);

  for (final archetype in _archetypeIndex.values) {
    if (!archetype.setHash.contains(params.hash)) continue;
    for (int c = 0; c < params.componentIDs.length; c++) {
      columns[c] = _componentIndex[params.componentIDs[c]]![archetype.setHash]!;
    }

    for (int i = 0; i < archetype.entityCount; i++) {
      for (int c = 0; c < columns.length; c++) {
        queryRows.add(archetype.components[columns[c]][i]);
      }
    }
  }
  return queryRows;
}