@curbl/ecs
Version:
Small Entity Component System
27 lines (26 loc) • 960 B
TypeScript
/**
* 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;
}