@valeera/x
Version:
ECS framework written in TS for web application.
31 lines (30 loc) • 1.16 kB
TypeScript
import { Entity } from "./Entity";
import { World } from "./World";
export type TQueryRule = (entity: Entity) => boolean;
export declare class System {
readonly id: number;
readonly isSystem = true;
name: string;
loopTimes: number;
entitySet: WeakMap<World, Set<Entity>>;
usedBy: World[];
autoUpdate: boolean;
handler: (entity: Entity, time: number, delta: number, world: World) => any;
protected currentDelta: number;
protected currentTime: number;
protected currentWorld: World | null;
protected rule: TQueryRule;
private _disabled;
private _priority;
get disabled(): boolean;
set disabled(value: boolean);
get priority(): number;
set priority(v: number);
constructor(fitRule: TQueryRule, handler?: (entity: Entity, time: number, delta: number, world: World) => any, name?: string);
checkEntityManager(world: World): this;
query(entity: Entity): boolean;
run(world: World, time: number, delta: number): this;
destroy(): this;
handle(entity: Entity, time: number, delta: number, world: World): this;
}
export type SystemConstructor = new (...a: any[]) => System;