UNPKG

entix-ecs

Version:
21 lines (20 loc) 883 B
export type EntityId = number; type ComponentClass<T> = new (...args: any[]) => T; type Query = 'All' | 'Any' | 'None'; export declare class EntityManager { private entityCount; private entities; private componentMap; createEntity(): EntityId; addComponent<T>(id: EntityId, componentClass: ComponentClass<T>, componentInstance: T): void; removeComponent<T>(id: EntityId, componentClass: ComponentClass<T>): void; getComponent<T>(id: EntityId, componentClass: ComponentClass<T>): T | undefined; getAllComponents(id: EntityId): any[]; removeEntity(id: EntityId): void; query<T extends Record<string, ComponentClass<any>>>(filterType: Query, componentsToMatch: T, callback: (id: EntityId, matched: { [K in keyof T]: InstanceType<T[K]>; }) => void): void; getAllEntities(): EntityId[]; private ensureEntityExists; } export {};