UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

34 lines (23 loc) 1 kB
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() readonly dependencies: Type<any>[] protected readonly entityManager: EntityManager startup(em: EntityManager): Promise<void> shutdown(em: EntityManager): Promise<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 }