mani-game-engine 1.0.0-pre.18 → 1.0.0-pre.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/clock.d.ts CHANGED
@@ -6,6 +6,11 @@ declare const defaultOptions: {
6
6
  maxFrameTime: number;
7
7
  timeScale: number;
8
8
  };
9
+ export declare type Timeout = {
10
+ recall?: number;
11
+ callback: Function;
12
+ callTime: number;
13
+ };
9
14
  export declare type GameClockOptions = Partial<typeof defaultOptions>;
10
15
  export interface Clock {
11
16
  onPrepare: Signal<unknown>;
@@ -17,6 +22,8 @@ export interface Clock {
17
22
  stop(): this;
18
23
  }
19
24
  export declare class GameClock implements Clock {
25
+ private nextTimeoutId;
26
+ private timeouts;
20
27
  private isRunning;
21
28
  private requestId;
22
29
  private currentTime;
@@ -36,5 +43,8 @@ export declare class GameClock implements Clock {
36
43
  set timeScale(value: number);
37
44
  start(): this;
38
45
  stop(): this;
46
+ setTimeout(callback: Function, delay: number): number;
47
+ setInterval(callback: Function, delay: number): number;
48
+ clearTimeout(timeoutId: number): boolean;
39
49
  }
40
50
  export {};
package/lib/clock.js CHANGED
@@ -8,6 +8,8 @@ const defaultOptions = {
8
8
  };
9
9
  export class GameClock {
10
10
  constructor(options) {
11
+ this.nextTimeoutId = 0;
12
+ this.timeouts = new Map();
11
13
  this.isRunning = false;
12
14
  this.requestId = 0;
13
15
  this.currentTime = 0;
@@ -76,5 +78,20 @@ export class GameClock {
76
78
  cancelAnimationFrame(this.requestId);
77
79
  return this;
78
80
  }
81
+ setTimeout(callback, delay) {
82
+ const timeOut = { callback, callTime: this.gameTime + delay };
83
+ this.nextTimeoutId++;
84
+ this.timeouts.set(this.nextTimeoutId, timeOut);
85
+ return this.nextTimeoutId;
86
+ }
87
+ setInterval(callback, delay) {
88
+ const timeOut = { callback, callTime: this.gameTime + delay, recall: delay };
89
+ this.nextTimeoutId++;
90
+ this.timeouts.set(this.nextTimeoutId, timeOut);
91
+ return this.nextTimeoutId;
92
+ }
93
+ clearTimeout(timeoutId) {
94
+ return this.timeouts.delete(timeoutId);
95
+ }
79
96
  }
80
97
  //# sourceMappingURL=clock.js.map
package/lib/clock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"clock.js","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../src/clock.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mani-game-engine",
3
3
  "author": "Jan Mankopf",
4
- "version": "1.0.0-pre.18",
4
+ "version": "1.0.0-pre.19",
5
5
  "description": "entity component system game engine for typescript",
6
6
  "private": false,
7
7
  "scripts": {
package/src/clock.ts CHANGED
@@ -12,6 +12,11 @@ const defaultOptions = {
12
12
  timeScale: 1,
13
13
  };
14
14
 
15
+ export type Timeout = {
16
+ recall?: number;
17
+ callback: Function;
18
+ callTime: number;
19
+ };
15
20
  export type GameClockOptions = Partial<typeof defaultOptions>;
16
21
 
17
22
  export interface Clock {
@@ -26,6 +31,8 @@ export interface Clock {
26
31
  }
27
32
 
28
33
  export class GameClock implements Clock {
34
+ private nextTimeoutId = 0;
35
+ private timeouts = new Map<number, Timeout>();
29
36
  private isRunning = false;
30
37
  private requestId = 0;
31
38
  private currentTime = 0;
@@ -112,4 +119,22 @@ export class GameClock implements Clock {
112
119
  cancelAnimationFrame(this.requestId);
113
120
  return this;
114
121
  }
122
+
123
+ setTimeout(callback: Function, delay: number) {
124
+ const timeOut: Timeout = {callback, callTime: this.gameTime + delay};
125
+ this.nextTimeoutId++;
126
+ this.timeouts.set(this.nextTimeoutId, timeOut);
127
+ return this.nextTimeoutId;
128
+ }
129
+
130
+ setInterval(callback: Function, delay: number) {
131
+ const timeOut: Timeout = {callback, callTime: this.gameTime + delay, recall: delay};
132
+ this.nextTimeoutId++;
133
+ this.timeouts.set(this.nextTimeoutId, timeOut);
134
+ return this.nextTimeoutId;
135
+ }
136
+
137
+ clearTimeout(timeoutId: number) {
138
+ return this.timeouts.delete(timeoutId);
139
+ }
115
140
  }