@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
34 lines (23 loc) • 1.09 kB
TypeScript
import {EntityManager} from "./EntityManager";
interface Type<T> extends Function {
new(...args: any[]): T;
}
export class System<A, B = any, C = any, D = any, E = any> {
constructor()
dependencies: Type<any>[]
protected readonly entityManager: EntityManager
startup(em: EntityManager, ready_callback: () => void, error_callback: () => void): void
shutdown(em: EntityManager, ready_callback: () => void, error_callback: () => void): void
link(a: A, entity: number): void
link(a: A, b: B, entity: number): void
link(a: A, b: B, c: C, entity: number): void
link(a: A, b: B, c: C, d: D, entity: number): void
link(a: A, b: B, c: C, d: D, e: E, entity: number): void
unlink(a: A, entity: number): void
unlink(a: A, b: B, entity: number): void
unlink(a: A, b: B, c: C, entity: number): void
unlink(a: A, b: B, c: C, d: D, entity: number): void
unlink(a: A, b: B, c: C, d: D, e: E, entity: number): void
update(time_delta: number): void
fixedUpdate(time_delta: number): void
}