@curbl/ecs
Version:
Small Entity Component System
20 lines (19 loc) • 714 B
TypeScript
import { Bitmask } from './bitmask';
import { Entity } from './entity';
export declare type OnEntityAdded = {
onEntityAdded: (_: Entity) => void;
};
export declare type OnEntityRemoved = {
onEntityRemoved: (_: Entity) => void;
};
export declare class QueryStore {
private readonly queries;
registerQuery(entities: IterableIterator<Entity>, bitmask: Bitmask): [Entity[], Bitmask];
addQueryOnAdded(bitmask: Bitmask, ctx: OnEntityAdded): void;
addQueryOnRemoved(bitmask: Bitmask, ctx: OnEntityRemoved): void;
private static callEntityAdded;
private static callEntityRemoved;
private static updateQuery;
update(modified: Entity[]): void;
clear(): void;
}