UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

58 lines (45 loc) 2.67 kB
export default class Signal<A = any, B = any, C = any, D = any, E = any, F = any, G = any, H = any> { add(listener: () => any, thisArg?: any): void add(listener: (a: A) => any, thisArg?: any): void add(listener: (a: A, b: B) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C, d: D) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C, d: D, e: E) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C, d: D, e: E, f: F) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => any, thisArg?: any): void add(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => any, thisArg?: any): void addOne(listener: () => any, thisArg?: any): void addOne(listener: (a: A) => any, thisArg?: any): void addOne(listener: (a: A, b: B) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C, d: D) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C, d: D, e: E) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C, d: D, e: E, f: F) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => any, thisArg?: any): void addOne(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => any, thisArg?: any): void remove(listener: () => any, thisArg?: any): void remove(listener: (a: A) => any, thisArg?: any): void remove(listener: (a: A, b: B) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C, d: D) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C, d: D, e: E) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C, d: D, e: E, f: F) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => any, thisArg?: any): void remove(listener: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => any, thisArg?: any): void send0(): void send1(a: A): void send2(a: A, b: B): void send3(a: A, b: B, c: C): void send4(a: A, b: B, c: C, d: D): void send6(a: A, b: B, c: C, d: D, e: E, f: F): void send8(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): void /** * Prefer strongly typed dispatch methods instead (send0, send1 etc) */ dispatch(...params: any[]): void promise(): Promise<[A, B, C, D, E, F, G, H]> /** * @deprecated */ removeAll(): void }