diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-10-31 10:52:57 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-10-31 10:52:57 +0100 |
commit | 1712352d1c72628a045300fe922c82cd3214070a (patch) | |
tree | 620bd559e2e8fb018d692cf10c20ecd7d108cb04 /src/util.ts | |
parent | a86a80e402d5cc58bc2bf248ddbf82d5fafa88a1 (diff) | |
download | rpgedit-1712352d1c72628a045300fe922c82cd3214070a.tar rpgedit-1712352d1c72628a045300fe922c82cd3214070a.zip |
view: add simple input handlers
Diffstat (limited to 'src/util.ts')
-rw-r--r-- | src/util.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/util.ts b/src/util.ts index 453966e..7129b2b 100644 --- a/src/util.ts +++ b/src/util.ts @@ -33,3 +33,15 @@ export function nextPowerOf2(n: number): number { return i; } + +export class Listenable<T extends any[]> { + private readonly listeners: Array<(...args: T) => void> = []; + + public addListener(listener: (...args: T) => void): void { + this.listeners.push(listener); + } + + protected runListeners(...args: T): void { + this.listeners.forEach((l) => l(...args)); + } +} |