kiwiengine 0.6.1 → 0.6.2

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.
@@ -4,10 +4,7 @@ export class GameNode extends EventEmitter {
4
4
  children = [];
5
5
  paused = false;
6
6
  timeScale = 1;
7
- #worldTimeScale = 1;
8
- get worldTimeScale() {
9
- return this.#worldTimeScale;
10
- }
7
+ worldTimeScale = 1;
11
8
  set parent(parent) {
12
9
  this.#parent = parent;
13
10
  }
@@ -58,7 +55,7 @@ export class GameNode extends EventEmitter {
58
55
  update(dt) {
59
56
  if (this.paused)
60
57
  return;
61
- this.#worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale;
58
+ this.worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale;
62
59
  const scaledDt = dt * this.timeScale;
63
60
  for (const child of this.children) {
64
61
  if (!child.paused)
@@ -1 +1 @@
1
- {"version":3,"file":"game-node.js","sourceRoot":"","sources":["../../../src/node/core/game-node.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter, EventMap } from '@webtaku/event-emitter'\n\nexport abstract class GameNode<E extends EventMap = {}> extends EventEmitter<E & {\n update: (dt: number) => void\n}> {\n #parent?: GameNode<EventMap>\n protected children: GameNode<EventMap>[] = [];\n paused = false\n timeScale = 1\n #worldTimeScale = 1\n\n get worldTimeScale() {\n return this.#worldTimeScale\n }\n\n protected set parent(parent: GameNode<EventMap> | undefined) {\n this.#parent = parent\n }\n\n protected get parent() {\n return this.#parent\n }\n\n add(...children: GameNode<EventMap>[]) {\n for (const child of children) {\n\n // 기존 부모로부터 제거\n if (child.#parent) {\n const idx = child.#parent.children.indexOf(child)\n if (idx !== -1) child.#parent.children.splice(idx, 1)\n }\n\n // 새로운 부모 설정\n child.parent = this\n this.children.push(child)\n }\n }\n\n override remove() {\n super.remove()\n\n // 부모로부터 제거\n if (this.#parent) {\n const idx = this.#parent.children.indexOf(this)\n if (idx !== -1) this.#parent.children.splice(idx, 1)\n this.#parent = undefined\n }\n\n // 자식 노드 제거\n for (const child of this.children) {\n child.parent = undefined\n child.remove()\n }\n this.children.length = 0\n }\n\n pause() {\n this.paused = true\n for (const child of this.children) {\n child.pause()\n }\n }\n\n resume() {\n this.paused = false\n for (const child of this.children) {\n child.resume()\n }\n }\n\n protected update(dt: number) {\n if (this.paused) return\n\n this.#worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale\n const scaledDt = dt * this.timeScale\n\n for (const child of this.children) {\n if (!child.paused) child.update(scaledDt)\n }\n\n (this as any).emit('update', scaledDt)\n }\n}\n"]}
1
+ {"version":3,"file":"game-node.js","sourceRoot":"","sources":["../../../src/node/core/game-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,wBAAwB,CAAA;AAE/D,MAAM,OAAgB,QAAkC,SAAQ,YAE9D;IACA,OAAO,CAAqB;IAClB,QAAQ,GAAyB,EAAE,CAAC;IAC9C,MAAM,GAAG,KAAK,CAAA;IACd,SAAS,GAAG,CAAC,CAAA;IACH,cAAc,GAAG,CAAC,CAAA;IAE5B,IAAc,MAAM,CAAC,MAAsC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,GAAG,CAAC,GAAG,QAA8B;QACnC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAE7B,cAAc;YACd,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACjD,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACvD,CAAC;YAED,YAAY;YACZ,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,KAAK,CAAC,MAAM,EAAE,CAAA;QAEd,WAAW;QACX,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAC1B,CAAC;QAED,WAAW;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAA;YACxB,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAES,MAAM,CAAC,EAAU;QACzB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QAEvB,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1E,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAA;QAEpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAEA,IAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;CACF","sourcesContent":["import { EventEmitter, EventMap } from '@webtaku/event-emitter'\n\nexport abstract class GameNode<E extends EventMap = {}> extends EventEmitter<E & {\n update: (dt: number) => void\n}> {\n #parent?: GameNode<EventMap>\n protected children: GameNode<EventMap>[] = [];\n paused = false\n timeScale = 1\n protected worldTimeScale = 1\n\n protected set parent(parent: GameNode<EventMap> | undefined) {\n this.#parent = parent\n }\n\n protected get parent() {\n return this.#parent\n }\n\n add(...children: GameNode<EventMap>[]) {\n for (const child of children) {\n\n // 기존 부모로부터 제거\n if (child.#parent) {\n const idx = child.#parent.children.indexOf(child)\n if (idx !== -1) child.#parent.children.splice(idx, 1)\n }\n\n // 새로운 부모 설정\n child.parent = this\n this.children.push(child)\n }\n }\n\n override remove() {\n super.remove()\n\n // 부모로부터 제거\n if (this.#parent) {\n const idx = this.#parent.children.indexOf(this)\n if (idx !== -1) this.#parent.children.splice(idx, 1)\n this.#parent = undefined\n }\n\n // 자식 노드 제거\n for (const child of this.children) {\n child.parent = undefined\n child.remove()\n }\n this.children.length = 0\n }\n\n pause() {\n this.paused = true\n for (const child of this.children) {\n child.pause()\n }\n }\n\n resume() {\n this.paused = false\n for (const child of this.children) {\n child.resume()\n }\n }\n\n protected update(dt: number) {\n if (this.paused) return\n\n this.worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale\n const scaledDt = dt * this.timeScale\n\n for (const child of this.children) {\n if (!child.paused) child.update(scaledDt)\n }\n\n (this as any).emit('update', scaledDt)\n }\n}\n"]}
@@ -6,7 +6,7 @@ export declare abstract class GameNode<E extends EventMap = {}> extends EventEmi
6
6
  protected children: GameNode<EventMap>[];
7
7
  paused: boolean;
8
8
  timeScale: number;
9
- get worldTimeScale(): number;
9
+ protected worldTimeScale: number;
10
10
  protected set parent(parent: GameNode<EventMap> | undefined);
11
11
  protected get parent(): GameNode<EventMap> | undefined;
12
12
  add(...children: GameNode<EventMap>[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"game-node.d.ts","sourceRoot":"","sources":["../../../../src/node/core/game-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAE/D,8BAAsB,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,YAAY,CAAC,CAAC,GAAG;IAC/E,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B,CAAC;;IAEA,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAM;IAC9C,MAAM,UAAQ;IACd,SAAS,SAAI;IAGb,IAAI,cAAc,WAEjB;IAED,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,EAE1D;IAED,SAAS,KAAK,MAAM,IAJS,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAM1D;IAED,GAAG,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAe5B,MAAM;IAkBf,KAAK;IAOL,MAAM;IAON,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM;CAY5B"}
1
+ {"version":3,"file":"game-node.d.ts","sourceRoot":"","sources":["../../../../src/node/core/game-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAE/D,8BAAsB,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,YAAY,CAAC,CAAC,GAAG;IAC/E,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B,CAAC;;IAEA,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAM;IAC9C,MAAM,UAAQ;IACd,SAAS,SAAI;IACb,SAAS,CAAC,cAAc,SAAI;IAE5B,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,EAE1D;IAED,SAAS,KAAK,MAAM,IAJS,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAM1D;IAED,GAAG,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAe5B,MAAM;IAkBf,KAAK;IAOL,MAAM;IAON,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM;CAY5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiwiengine",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "types": "./lib/types/index.d.ts",
5
5
  "main": "./lib/index.js",
6
6
  "dependencies": {
@@ -7,11 +7,7 @@ export abstract class GameNode<E extends EventMap = {}> extends EventEmitter<E &
7
7
  protected children: GameNode<EventMap>[] = [];
8
8
  paused = false
9
9
  timeScale = 1
10
- #worldTimeScale = 1
11
-
12
- get worldTimeScale() {
13
- return this.#worldTimeScale
14
- }
10
+ protected worldTimeScale = 1
15
11
 
16
12
  protected set parent(parent: GameNode<EventMap> | undefined) {
17
13
  this.#parent = parent
@@ -71,7 +67,7 @@ export abstract class GameNode<E extends EventMap = {}> extends EventEmitter<E &
71
67
  protected update(dt: number) {
72
68
  if (this.paused) return
73
69
 
74
- this.#worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale
70
+ this.worldTimeScale = (this.#parent?.worldTimeScale ?? 1) * this.timeScale
75
71
  const scaledDt = dt * this.timeScale
76
72
 
77
73
  for (const child of this.children) {