Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 27 additions & 10 deletions docs/api/ecs/query.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ import { Position, Velocity, Acceleration } from './components';

const world = new World({...});
const query = world.createQuery(Position, ANY(Velocity, NOT(Acceleration)));
query.forEach(entityId => {
query.items().forEach((entityId) => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should swap the order of these; const entityId of query.iter() should come first as I know the syntax is not desired, but it will (for now) be the way we should be doing it for most cases.

// ...
});
})

// or

for (const entityId of query) {
for (const entityId of query.iter()) {
// ...
}
```
Expand Down Expand Up @@ -56,30 +56,47 @@ This function is not typically used directly but is used internally by the world



### :material-function-variant: **`#!typescript public forEach(callback: (entityId: EntityId) => void): void`** { #forEach data-toc-label='forEach' }
### :material-function-variant: **`#!typescript public items(): void`** { #forEach data-toc-label='items' }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Items and iter are not equivalent.


Runs a callback for each entity that matches the query.

If the callback returns `false`, the iteration will stop, and no other entities in the query will be iterated over.

#### Usage:
```typescript
query.forEach(entityId => {
let items: query.items()
```

#### Returns

`#!typescript Array<EntityId>`

: An array of all the entity IDs for matching entities of this query.

### :material-function-variant: **`#!typescript public *iter(): Generator<EntityId>`** { #markdown data-toc-label='*iter' }

#### Usage:
```typescript
for (const entityId of query.iter()) {
// ...
});
}
```

#### Parameters
`#!typescript callback: (entityId: EntityId) => boolean | void`
#### Returns

`#!typescript Generator<EntityId>`

: A Generator of all the entity IDs for matching entities of this query.

---

: The callback ran for each entity in the query.


## Query Helper Functions

Below are a set of helper functions that can be used to create queries.

These functions are used in conjunction with the [`#!typescript createQuery()`](../world/#createQuery "createQuery()") method, and should not be used directly.
These functions are used in conjunction with the [`#!typescript world.createQuery()`](../world/#createQuery "createQuery()") method, and should not be used directly.

### :material-function-variant: **`#!typescript ALL(...components: Array<RawQuery | AnyComponent>): RawQuery`** { #all data-toc-label='ALL' }

Expand Down