UNPKG

@curbl/ecs

Version:

Small Entity Component System

27 lines (26 loc) 960 B
/** * Stores all entities and make them easily accessible for the systems * Reduce work of systems that store the same entities */ import { Bitmask } from './bitmask'; import { Entity } from './entity'; import { OnEntityAdded, OnEntityRemoved } from './queryStore'; export declare class EntityStore { private readonly queryStore; private readonly entities; private readonly pool; private maxPoolSize; private modified; setMaxPoolSize(size: number): void; registerQuery(bitmask: Bitmask): [Entity[], Bitmask]; addQueryOnAdded(bitmask: Bitmask, ctx: OnEntityAdded): void; addQueryOnRemoved(bitmask: Bitmask, ctx: OnEntityRemoved): void; create(components: unknown[]): Entity; active(entity: Entity): boolean; add(entity: Entity): void; delete(entity: Entity): void; remove(entity: Entity): void; markModified(entity: Entity): void; update(): void; clear(): void; }