@jolly-pixel/engine 2.0.0 → 2.2.0

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.
Files changed (48) hide show
  1. package/README.md +2 -2
  2. package/dist/actor/Actor.d.ts +5 -2
  3. package/dist/actor/Actor.d.ts.map +1 -1
  4. package/dist/actor/Actor.js +22 -9
  5. package/dist/actor/Actor.js.map +1 -1
  6. package/dist/actor/ActorComponent.d.ts +2 -0
  7. package/dist/actor/ActorComponent.d.ts.map +1 -1
  8. package/dist/actor/ActorComponent.js +19 -0
  9. package/dist/actor/ActorComponent.js.map +1 -1
  10. package/dist/actor/ActorTree.d.ts.map +1 -1
  11. package/dist/actor/ActorTree.js +10 -2
  12. package/dist/actor/ActorTree.js.map +1 -1
  13. package/dist/components/types.d.ts +2 -0
  14. package/dist/components/types.d.ts.map +1 -1
  15. package/dist/systems/Scene.d.ts +41 -0
  16. package/dist/systems/Scene.d.ts.map +1 -0
  17. package/dist/systems/Scene.js +41 -0
  18. package/dist/systems/Scene.js.map +1 -0
  19. package/dist/systems/SceneManager.d.ts +41 -14
  20. package/dist/systems/SceneManager.d.ts.map +1 -1
  21. package/dist/systems/SceneManager.js +190 -18
  22. package/dist/systems/SceneManager.js.map +1 -1
  23. package/dist/systems/World.d.ts +17 -8
  24. package/dist/systems/World.d.ts.map +1 -1
  25. package/dist/systems/World.js +46 -12
  26. package/dist/systems/World.js.map +1 -1
  27. package/dist/systems/asset/Base.d.ts +1 -1
  28. package/dist/systems/asset/Base.d.ts.map +1 -1
  29. package/dist/systems/asset/Base.js.map +1 -1
  30. package/dist/systems/asset/Manager.d.ts +1 -1
  31. package/dist/systems/asset/Manager.d.ts.map +1 -1
  32. package/dist/systems/asset/Manager.js +12 -9
  33. package/dist/systems/asset/Manager.js.map +1 -1
  34. package/dist/systems/asset/Queue.d.ts +1 -1
  35. package/dist/systems/asset/Queue.d.ts.map +1 -1
  36. package/dist/systems/asset/Queue.js +8 -0
  37. package/dist/systems/asset/Queue.js.map +1 -1
  38. package/dist/systems/index.d.ts +1 -0
  39. package/dist/systems/index.d.ts.map +1 -1
  40. package/dist/systems/index.js +1 -0
  41. package/dist/systems/index.js.map +1 -1
  42. package/dist/systems/rendering/Renderer.d.ts +2 -0
  43. package/dist/systems/rendering/Renderer.d.ts.map +1 -1
  44. package/dist/systems/rendering/ThreeRenderer.d.ts +10 -6
  45. package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
  46. package/dist/systems/rendering/ThreeRenderer.js +74 -41
  47. package/dist/systems/rendering/ThreeRenderer.js.map +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <p align="center"><h1 align="center">
1
+ <h1 align="center">
2
2
  engine
3
3
  </h1>
4
4
 
@@ -66,7 +66,7 @@ import { Systems, Actor } from "@jolly-pixel/engine";
66
66
 
67
67
  const sceneManager = new Systems.SceneManager();
68
68
  const renderer = new Systems.ThreeRenderer(canvas, {
69
- scene: sceneManager,
69
+ sceneManager,
70
70
  renderMode: "direct"
71
71
  });
72
72
  const game = new Systems.World(renderer, {
@@ -15,19 +15,21 @@ export interface ActorOptions<TContext = WorldDefaultContext> {
15
15
  layer?: number | number[];
16
16
  }
17
17
  export declare class Actor<TContext = WorldDefaultContext> extends ActorTree<TContext> {
18
+ #private;
18
19
  static Id: IntegerIncrement;
19
20
  static PersistentId: PersistentIdIncrement;
20
21
  world: World<any, TContext>;
21
22
  id: number;
22
23
  persistentId: string;
23
24
  name: string;
24
- awoken: boolean;
25
25
  parent: Actor<TContext> | null;
26
26
  components: Component[];
27
+ componentsRequiringUpdate: Component[];
27
28
  behaviors: Record<string, Behavior<any, TContext>[]>;
28
- transform: Transform;
29
+ awoken: boolean;
29
30
  pendingForDestruction: boolean;
30
31
  object3D: THREE.Group<THREE.Object3DEventMap>;
32
+ transform: Transform;
31
33
  constructor(world: World<any, TContext>, options: ActorOptions<TContext>);
32
34
  addComponent<T extends ComponentConstructor>(componentClass: T, ...args: RequiresOptions<T> extends true ? [options: ConstructorParameters<T>[1], callback?: (component: InstanceType<T>) => void] : [options?: ConstructorParameters<T>[1], callback?: (component: InstanceType<T>) => void]): this;
33
35
  addComponentAndGet<T extends ComponentConstructor>(componentClass: T, ...args: RequiresOptions<T> extends true ? [options: ConstructorParameters<T>[1]] : [options?: ConstructorParameters<T>[1]]): InstanceType<T>;
@@ -38,6 +40,7 @@ export declare class Actor<TContext = WorldDefaultContext> extends ActorTree<TCo
38
40
  removeChildren(...objects: THREE.Object3D[]): this;
39
41
  awake(): void;
40
42
  update(deltaTime: number): void;
43
+ fixedUpdate(deltaTime: number): void;
41
44
  toString(): string;
42
45
  isDestroyed(): boolean;
43
46
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
@@ -15,13 +15,14 @@ export class Actor extends ActorTree {
15
15
  id = Actor.Id.incr();
16
16
  persistentId = Actor.PersistentId.next();
17
17
  name;
18
- awoken = false;
19
18
  parent = null;
20
19
  components = [];
20
+ componentsRequiringUpdate = [];
21
21
  behaviors = {};
22
- transform;
22
+ awoken = false;
23
23
  pendingForDestruction = false;
24
24
  object3D = new THREE.Group();
25
+ transform;
25
26
  constructor(world, options) {
26
27
  super();
27
28
  const { name, parent = null, visible = true, layer } = options;
@@ -51,22 +52,28 @@ export class Actor extends ActorTree {
51
52
  else {
52
53
  this.world.sceneManager.tree.add(this);
53
54
  }
55
+ this.world.sceneManager.registerActor(this);
56
+ }
57
+ #initializeComponent(component) {
58
+ if (this.awoken) {
59
+ component.awake?.();
60
+ }
61
+ if (("update" in component && typeof component.update === "function") ||
62
+ ("fixedUpdate" in component && typeof component.fixedUpdate === "function")) {
63
+ component.needUpdate = true;
64
+ }
54
65
  }
55
66
  addComponent(componentClass, ...args) {
56
67
  const [options, callback] = args;
57
68
  const component = new componentClass(this, options);
58
69
  callback?.(component);
59
- if (this.awoken) {
60
- component.awake?.();
61
- }
70
+ this.#initializeComponent(component);
62
71
  return this;
63
72
  }
64
73
  addComponentAndGet(componentClass, ...args) {
65
74
  const [options] = args;
66
75
  const component = new componentClass(this, options);
67
- if (this.awoken) {
68
- component.awake?.();
69
- }
76
+ this.#initializeComponent(component);
70
77
  return component;
71
78
  }
72
79
  getComponent(typeNameOrClass) {
@@ -108,7 +115,12 @@ export class Actor extends ActorTree {
108
115
  }
109
116
  update(deltaTime) {
110
117
  if (!this.pendingForDestruction) {
111
- this.components.forEach((component) => component.update?.(deltaTime));
118
+ this.componentsRequiringUpdate.forEach((component) => component.update?.(deltaTime));
119
+ }
120
+ }
121
+ fixedUpdate(deltaTime) {
122
+ if (!this.pendingForDestruction) {
123
+ this.componentsRequiringUpdate.forEach((component) => component.fixedUpdate?.(deltaTime));
112
124
  }
113
125
  }
114
126
  toString() {
@@ -118,6 +130,7 @@ export class Actor extends ActorTree {
118
130
  return this.pendingForDestruction;
119
131
  }
120
132
  destroy() {
133
+ this.world.sceneManager.unregisterActor(this);
121
134
  for (let i = this.components.length - 1; i >= 0; i--) {
122
135
  this.components[i].destroy?.();
123
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export declare class ActorComponent<TContext = WorldDefaultContext> extends Even
21
21
  typeName: FreeComponentEnum;
22
22
  pendingForDestruction: boolean;
23
23
  constructor(options: ActorComponentOptions<TContext>);
24
+ get needUpdate(): boolean;
25
+ set needUpdate(value: boolean);
24
26
  get context(): TContext;
25
27
  toString(): string;
26
28
  isDestroyed(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ActorComponent.d.ts","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB,CACpC,QAAQ,GAAG,mBAAmB;IAE9B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,cAAc,CACzB,QAAQ,GAAG,mBAAmB,CAC9B,SAAQ,YAAY,CAAC,oBAAoB,CAAE,YAAW,SAAS;;IAC/D,MAAM,CAAC,EAAE,mBAA0B;IACnC,MAAM,CAAC,YAAY,wBAA+B;IAElD,EAAE,SAA4B;IAC9B,YAAY,SAAsC;IAClD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,qBAAqB,UAAS;gBAG5B,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC;IAc1C,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAcQ,QAAQ,IAAI,MAAM;IAI3B,WAAW;IAIX,OAAO;CAWR"}
1
+ {"version":3,"file":"ActorComponent.d.ts","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB,CACpC,QAAQ,GAAG,mBAAmB;IAE9B,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,cAAc,CACzB,QAAQ,GAAG,mBAAmB,CAC9B,SAAQ,YAAY,CAAC,oBAAoB,CAAE,YAAW,SAAS;;IAC/D,MAAM,CAAC,EAAE,mBAA0B;IACnC,MAAM,CAAC,YAAY,wBAA+B;IAElD,EAAE,SAA4B;IAC9B,YAAY,SAAsC;IAClD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAG5B,qBAAqB,UAAS;gBAG5B,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC;IAc1C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAc5B;IAED,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAcQ,QAAQ,IAAI,MAAM;IAI3B,WAAW;IAIX,OAAO;CAaR"}
@@ -12,6 +12,7 @@ export class ActorComponent extends EventEmitter {
12
12
  persistentId = ActorComponent.PersistentId.next();
13
13
  actor;
14
14
  typeName;
15
+ #needUpdate = false;
15
16
  pendingForDestruction = false;
16
17
  constructor(options) {
17
18
  super();
@@ -23,6 +24,23 @@ export class ActorComponent extends EventEmitter {
23
24
  // that the component instance is fully constructed
24
25
  queueMicrotask(() => this.#initSignalDecorators());
25
26
  }
27
+ get needUpdate() {
28
+ return this.#needUpdate;
29
+ }
30
+ set needUpdate(value) {
31
+ this.#needUpdate = value;
32
+ if (this.#needUpdate) {
33
+ if (!this.actor.componentsRequiringUpdate.includes(this)) {
34
+ this.actor.componentsRequiringUpdate.push(this);
35
+ }
36
+ }
37
+ else {
38
+ const index = this.actor.componentsRequiringUpdate.indexOf(this);
39
+ if (index !== -1) {
40
+ this.actor.componentsRequiringUpdate.splice(index, 1);
41
+ }
42
+ }
43
+ }
26
44
  get context() {
27
45
  return this.actor.world.context;
28
46
  }
@@ -43,6 +61,7 @@ export class ActorComponent extends EventEmitter {
43
61
  return this.pendingForDestruction;
44
62
  }
45
63
  destroy() {
64
+ this.needUpdate = false;
46
65
  const startIndex = this.actor.world.sceneManager.componentsToBeStarted.indexOf(this);
47
66
  if (startIndex !== -1) {
48
67
  this.actor.world.sceneManager.componentsToBeStarted.splice(startIndex, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"ActorComponent.js","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAoBvF,MAAM,OAAO,cAEX,SAAQ,YAAkC;IAC1C,MAAM,CAAC,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAElD,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9B,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClD,KAAK,CAAkB;IACvB,QAAQ,CAAoB;IAE5B,qBAAqB,GAAG,KAAK,CAAC;IAE9B,YACE,OAAwC;QAExC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/D,0DAA0D;QAC1D,mDAAmD;QACnD,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,qBAAqB;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5D,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,OAAO;QACL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"ActorComponent.js","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAoBvF,MAAM,OAAO,cAEX,SAAQ,YAAkC;IAC1C,MAAM,CAAC,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAElD,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9B,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClD,KAAK,CAAkB;IACvB,QAAQ,CAAoB;IAE5B,WAAW,GAAG,KAAK,CAAC;IACpB,qBAAqB,GAAG,KAAK,CAAC;IAE9B,YACE,OAAwC;QAExC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/D,0DAA0D;QAC1D,mDAAmD;QACnD,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,KAAc;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;aACI,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,qBAAqB;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5D,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorTree.d.ts","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,aAAa,CACvB,QAAQ,GAAG,mBAAmB,IAC5B;IACF,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAC/B,QAAQ,GAAG,mBAAmB;IAE9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,qBAAa,SAAS,CACpB,QAAQ,GAAG,mBAAmB;;IAK9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAM;gBAG/B,OAAO,GAAE,gBAAgB,CAAC,QAAQ,CAAM;IAM1C,GAAG,CACD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GACrB,IAAI;IAKP,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQlC,SAAS,CACT,OAAO,EAAE,MAAM,GACd,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAuFpC;;;;OAIG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,GACX,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAqCvB,aAAa,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAQlD,YAAY,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAMnD,YAAY,CACV,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;IAOxB,gBAAgB;IAiBd,IAAI,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAMjD,YAAY,CACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAM1C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;CAOzD"}
1
+ {"version":3,"file":"ActorTree.d.ts","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,aAAa,CACvB,QAAQ,GAAG,mBAAmB,IAC5B;IACF,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAC/B,QAAQ,GAAG,mBAAmB;IAE9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,qBAAa,SAAS,CACpB,QAAQ,GAAG,mBAAmB;;IAK9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAM;gBAG/B,OAAO,GAAE,gBAAgB,CAAC,QAAQ,CAAM;IAM1C,GAAG,CACD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GACrB,IAAI;IAKP,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQlC,SAAS,CACT,OAAO,EAAE,MAAM,GACd,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAgGpC;;;;OAIG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,GACX,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAqCvB,aAAa,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAQlD,YAAY,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAMnD,YAAY,CACV,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;IAOxB,gBAAgB;IAiBd,IAAI,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAMjD,YAAY,CACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAM1C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;CAOzD"}
@@ -46,8 +46,16 @@ export class ActorTree {
46
46
  }
47
47
  const currentPattern = patternParts[patternIndex];
48
48
  const isLastPattern = patternIndex === patternParts.length - 1;
49
+ const matchers = new Map();
49
50
  // eslint-disable-next-line func-style
50
- const matchSinglePattern = (name, pattern) => pm(pattern)(name);
51
+ const matchSinglePattern = (name, pattern) => {
52
+ let matcher = matchers.get(pattern);
53
+ if (!matcher) {
54
+ matcher = pm(pattern);
55
+ matchers.set(pattern, matcher);
56
+ }
57
+ return matcher(name);
58
+ };
51
59
  if (currentPattern === "**") {
52
60
  if (isLastPattern) {
53
61
  for (const { actor: descendant } of this.#walkDepthFirstGenerator(actor)) {
@@ -113,7 +121,7 @@ export class ActorTree {
113
121
  if (!currentNode) {
114
122
  break;
115
123
  }
116
- currentNode = [...currentNode.children].find((child) => child.name === parts[i]) ?? null;
124
+ currentNode = currentNode.children.find((child) => child.name === parts[i]) ?? null;
117
125
  }
118
126
  return currentNode;
119
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActorTree.js","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,MAAM,WAAW,CAAC;AAM3B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC,MAAM,OAAO,SAAS;IAGpB,YAAY,CAAoC;IAChD,eAAe,CAAoC;IAEnD,QAAQ,GAAsB,EAAE,CAAC;IAEjC,YACE,UAAsC,EAAE;QAExC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAChD,CAAC;IAED,GAAG,CACD,KAAsB;QAEtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAsB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,CAAE,SAAS,CACT,OAAe;QAEf,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAE7C,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBAClE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,CAAE,uBAAuB,CACvB,OAAe;QAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAE/D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBACrC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,CAAE,eAAe,CACf,KAAsB,EACtB,YAAsB,EACtB,YAAoB;QAEpB,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,YAAY,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/D,sCAAsC;QACtC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzE,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;wBACtC,MAAM,UAAU,CAAC;oBACnB,CAAC;gBACH,CAAC;gBAED,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YACnD,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzE,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;oBACrD,IAAI,YAAY,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjD,MAAM,UAAU,CAAC;oBACnB,CAAC;yBACI,CAAC;wBACJ,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;YACnD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACjC,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;iBACI,CAAC;gBACJ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ,CACN,IAAY;QAEZ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CACb,IAAY;QAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,WAAW,GAA2B,UAAU,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM;YACR,CAAC;YAED,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CACnC,IAAI,IAAI,CAAC;QACZ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,CAAE,aAAa;QACb,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBACrC,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,CAAE,YAAY;QACZ,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,YAAY,CACV,KAAsB;QAEtB,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACjC,KAAK,CAAC,sBAAsB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,CAAE,wBAAwB,CACxB,IAAqB,EACrB,UAA4B;QAE5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,CAAE,IAAI;QACJ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,CAAE,YAAY,CACZ,QAAyB;QAEzB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBACjC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ActorTree.js","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,11 @@ export type FreeComponentEnum = StrictComponentEnum | (string & {});
4
4
  export interface Component {
5
5
  actor: Actor<any>;
6
6
  typeName: FreeComponentEnum;
7
+ needUpdate: boolean;
7
8
  awake?(): void;
8
9
  start?(): void;
9
10
  update?(deltaTime: number): void;
11
+ fixedUpdate?(deltaTime: number): void;
10
12
  destroy(): void;
11
13
  }
12
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IAEpB,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,41 @@
1
+ import { EventEmitter } from "@posva/event-emitter";
2
+ import type { World, WorldDefaultContext } from "./World.ts";
3
+ import { IntegerIncrement } from "./generators/IntegerIncrement.ts";
4
+ export type SceneLifecycleEvents = {
5
+ awake: [];
6
+ start: [];
7
+ destroy: [];
8
+ };
9
+ export declare abstract class Scene<TContext = WorldDefaultContext> extends EventEmitter<SceneLifecycleEvents> {
10
+ static readonly Id: IntegerIncrement;
11
+ readonly id: number;
12
+ readonly name: string;
13
+ /** Set by SceneManager when the scene is activated. */
14
+ world: World<any, TContext>;
15
+ constructor(name: string);
16
+ /**
17
+ * Called once when the scene is first activated (before the first start/update).
18
+ * Populate actors here.
19
+ */
20
+ awake(): void;
21
+ /**
22
+ * Called once at the beginning of the first frame after awake.
23
+ * Useful for cross-actor initialization that requires all awake() calls to have run.
24
+ */
25
+ start(): void;
26
+ /**
27
+ * Called every frame (variable rate).
28
+ */
29
+ update(_deltaTime: number): void;
30
+ /**
31
+ * Called every fixed step (deterministic rate).
32
+ */
33
+ fixedUpdate(_deltaTime: number): void;
34
+ /**
35
+ * Called when the scene is being replaced or explicitly unloaded.
36
+ * Clean up timers, subscriptions, etc. Actor destruction is handled
37
+ * automatically by SceneManager.
38
+ */
39
+ destroy(): void;
40
+ }
41
+ //# sourceMappingURL=Scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/systems/Scene.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,EAAE,CAAC;CACb,CAAC;AAEF,8BAAsB,KAAK,CACzB,QAAQ,GAAG,mBAAmB,CAC9B,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,EAAE,mBAA0B;IAE5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,uDAAuD;IACvD,KAAK,EAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAEjB,IAAI,EAAE,MAAM;IAMxB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAEb;;;OAGG;IACH,KAAK,IAAI,IAAI;IAEb;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAEhC;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAErC;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAChB"}
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-empty-function */
2
+ // Import Third-party Dependencies
3
+ import { EventEmitter } from "@posva/event-emitter";
4
+ import { IntegerIncrement } from "./generators/IntegerIncrement.js";
5
+ export class Scene extends EventEmitter {
6
+ static Id = new IntegerIncrement();
7
+ id;
8
+ name;
9
+ /** Set by SceneManager when the scene is activated. */
10
+ world;
11
+ constructor(name) {
12
+ super();
13
+ this.id = Scene.Id.incr();
14
+ this.name = name;
15
+ }
16
+ /**
17
+ * Called once when the scene is first activated (before the first start/update).
18
+ * Populate actors here.
19
+ */
20
+ awake() { }
21
+ /**
22
+ * Called once at the beginning of the first frame after awake.
23
+ * Useful for cross-actor initialization that requires all awake() calls to have run.
24
+ */
25
+ start() { }
26
+ /**
27
+ * Called every frame (variable rate).
28
+ */
29
+ update(_deltaTime) { }
30
+ /**
31
+ * Called every fixed step (deterministic rate).
32
+ */
33
+ fixedUpdate(_deltaTime) { }
34
+ /**
35
+ * Called when the scene is being replaced or explicitly unloaded.
36
+ * Clean up timers, subscriptions, etc. Actor destruction is handled
37
+ * automatically by SceneManager.
38
+ */
39
+ destroy() { }
40
+ }
41
+ //# sourceMappingURL=Scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../src/systems/Scene.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE,MAAM,OAAgB,KAEpB,SAAQ,YAAkC;IAC1C,MAAM,CAAU,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEnC,EAAE,CAAS;IACX,IAAI,CAAS;IAEtB,uDAAuD;IACvD,KAAK,CAAwB;IAE7B,YAAY,IAAY;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,KAAU,CAAC;IAEhB;;;OAGG;IACH,KAAK,KAAU,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,UAAkB,IAAS,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,UAAkB,IAAS,CAAC;IAExC;;;;OAIG;IACH,OAAO,KAAU,CAAC"}
@@ -1,30 +1,57 @@
1
1
  import * as THREE from "three";
2
2
  import { EventEmitter } from "@posva/event-emitter";
3
3
  import { Actor, ActorComponent, ActorTree } from "../actor/index.ts";
4
+ import type { World, WorldDefaultContext } from "./World.ts";
4
5
  import type { Component } from "../components/types.ts";
5
- export type SceneEvents = {
6
+ import type { Scene } from "./Scene.ts";
7
+ export type AppendedSceneEntry<TContext> = {
8
+ scene: Scene<TContext>;
9
+ /**
10
+ * All actors created during the scene's awake(),
11
+ * tracked for cleanup on removeScene.
12
+ **/
13
+ ownedActors: ReadonlySet<Actor<TContext>>;
14
+ };
15
+ export type SceneEvents<TContext = WorldDefaultContext> = {
6
16
  awake: [];
17
+ sceneChanged: [scene: Scene<TContext>];
18
+ sceneDestroyed: [scene: Scene<TContext>];
19
+ sceneAppended: [scene: Scene<TContext>];
20
+ sceneRemoved: [scene: Scene<TContext>];
7
21
  };
8
- export interface SceneContract {
9
- readonly tree: ActorTree<any>;
10
- componentsToBeStarted: Component[];
11
- componentsToBeDestroyed: Component[];
12
- getSource(): THREE.Scene;
13
- awake(): void;
14
- update(deltaTime: number): void;
15
- destroyActor(actor: Actor<any>): void;
16
- }
17
- export declare class SceneManager extends EventEmitter<SceneEvents> implements SceneContract {
22
+ export declare class SceneManager<TContext = WorldDefaultContext> extends EventEmitter<SceneEvents<TContext>> {
18
23
  #private;
19
24
  default: THREE.Scene;
20
25
  componentsToBeStarted: Component[];
21
26
  componentsToBeDestroyed: Component[];
22
- readonly tree: ActorTree<any>;
27
+ readonly tree: ActorTree<TContext>;
23
28
  constructor(scene?: THREE.Scene);
29
+ get currentScene(): Scene<TContext> | null;
30
+ get hasPendingScene(): boolean;
24
31
  getSource(): THREE.Scene<THREE.Object3DEventMap>;
32
+ bindWorld(world: World<any, TContext>): void;
25
33
  awake(): void;
34
+ setScene(scene: Scene<TContext>): void;
35
+ loadScene(scene: Scene<TContext>): void;
36
+ /**
37
+ * Inserts a scene as a prefab into the current scene.
38
+ * The scene's awake() is called immediately; start() is deferred to the next beginFrame.
39
+ * All actors created during awake() are tracked and will be destroyed on removeScene().
40
+ */
41
+ appendScene(scene: Scene<TContext>): void;
42
+ removeScene(scene: Scene<TContext>): void;
43
+ removeScene(name: string): void;
44
+ getScene(): Scene<TContext> | null;
45
+ getScene(id: number): Scene<TContext> | null;
46
+ getScene(name: string): Scene<TContext>[];
47
+ beginFrame(): void;
48
+ fixedUpdate(deltaTime: number): void;
26
49
  update(deltaTime: number): void;
27
- destroyActor(actor: Actor<any>): void;
28
- destroyComponent(component: ActorComponent<any>): void;
50
+ endFrame(): void;
51
+ destroyActor(actor: Actor<TContext>): void;
52
+ registerActor(actor: Actor<TContext>): void;
53
+ unregisterActor(actor: Actor<TContext>): void;
54
+ getActor(name: string): Actor<TContext> | null;
55
+ destroyComponent(component: ActorComponent<TContext>): void;
29
56
  }
30
57
  //# sourceMappingURL=SceneManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../src/systems/SceneManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACL,KAAK,EACL,cAAc,EACd,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAE9B,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,uBAAuB,EAAE,SAAS,EAAE,CAAC;IAErC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACvC;AAED,qBAAa,YAAa,SAAQ,YAAY,CAC5C,WAAW,CACX,YAAW,aAAa;;IACxB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;IAErB,qBAAqB,EAAE,SAAS,EAAE,CAAM;IACxC,uBAAuB,EAAE,SAAS,EAAE,CAAM;IAI1C,QAAQ,CAAC,IAAI,iBAGV;gBAGD,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK;IAMrB,SAAS;IAIT,KAAK;IAUL,MAAM,CACJ,SAAS,EAAE,MAAM;IA6CnB,YAAY,CACV,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAkBnB,gBAAgB,CACd,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC;CAcjC"}
1
+ {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../src/systems/SceneManager.ts"],"names":[],"mappings":"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"}