UNPKG

@valeera/x

Version:

ECS framework written in TS for web application.

34 lines (33 loc) 1.56 kB
import { Entity, EntityConstructor } from "./Entity"; import { System, SystemConstructor } from "./System"; export declare class World { disabled: boolean; name: string; entities: Map<number, Entity>; systems: Map<number, System>; readonly id: number; readonly isWorld = true; constructor(name?: string); add<T extends EntityConstructor>(element: T, ...args: ConstructorParameters<T>): this; add<T extends SystemConstructor>(element: T, ...args: ConstructorParameters<T>): this; add(element: Entity | System): this; addEntity<T extends EntityConstructor>(entity: T, ...args: ConstructorParameters<T>): this; addEntity(entity: Entity): this; addSystem<T extends SystemConstructor>(system: T, ...args: ConstructorParameters<T>): this; addSystem(system: System): this; clear(): this; clearEntities(): this; clearSystems(): this; createEntity(name: string): Entity; destroy(): this; getEntity(entity: number | string | EntityConstructor): Entity | null; getSystem(system: number | string | SystemConstructor): System | null; hasEntity(entity: Entity | string | number): boolean; hasSystem(system: System | string | number | SystemConstructor): boolean; remove(element: Entity | System | SystemConstructor): this; removeEntity(entity: Entity | number | string | EntityConstructor): this; removeSystem(system: System | string | number | SystemConstructor): this; rootEntities(): Entity[]; run(time: number, delta: number): this; updateOrder(): this; }