MCPcopy Create free account
hub / github.com/esengine/esengine / find

Method find

packages/core/src/ECS/Core/Query/CompiledQuery.ts:322–347  ·  view source on GitHub ↗

* 查找满足条件的实体 * * Find entity matching predicate. * * @param predicate 查找条件 | Find predicate * @returns 找到的实体或 undefined | Found entity or undefined

(
        predicate: (entity: Entity, ...components: InstanceTypes<T>) => boolean
    )

Source from the content-addressed store, hash-verified

320 * @returns 找到的实体或 undefined | Found entity or undefined
321 */
322 public find(
323 predicate: (entity: Entity, ...components: InstanceTypes<T>) => boolean
324 ): Entity | undefined {
325 const entities = this.entities;
326 const componentTypes = this._componentTypes;
327 const typeCount = componentTypes.length;
328
329 for (let i = 0, len = entities.length; i < len; i++) {
330 const entity = entities[i]!;
331 const components: Component[] = new Array(typeCount);
332
333 for (let j = 0; j < typeCount; j++) {
334 const component = entity.getComponent(componentTypes[j]!);
335 if (!component) {
336 continue;
337 }
338 components[j] = component;
339 }
340
341 if (predicate(entity, ...(components as InstanceTypes<T>))) {
342 return entity;
343 }
344 }
345
346 return undefined;
347 }
348
349 /**
350 * 检查是否有任何实体匹配

Callers

nothing calls this directly

Calls 1

getComponentMethod · 0.45

Tested by

no test coverage detected