kiwiengine 0.5.3 → 0.5.5

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 (58) hide show
  1. package/examples/auto-battle/objects/character.ts +1 -1
  2. package/examples/battle-benchmark-matterjs/objects/character.ts +1 -1
  3. package/examples/battle-benchmark-separation/objects/character.ts +1 -1
  4. package/examples/battle-benchmark-separation2/objects/character.ts +1 -1
  5. package/examples/simple-battle/objects/character.ts +1 -1
  6. package/lib/dom/dom-animated-sprite.js.map +1 -1
  7. package/lib/dom/dom-game-object.js.map +1 -1
  8. package/lib/dom/dom-sprite.js.map +1 -1
  9. package/lib/index.js.map +1 -1
  10. package/lib/node/core/game-object.js.map +1 -1
  11. package/lib/node/core/renderable.js +2 -0
  12. package/lib/node/core/renderable.js.map +1 -1
  13. package/lib/node/ext/animated-sprite.js +16 -15
  14. package/lib/node/ext/animated-sprite.js.map +1 -1
  15. package/lib/node/ext/bitmap-text.js +29 -19
  16. package/lib/node/ext/bitmap-text.js.map +1 -1
  17. package/lib/node/ext/spine.js.map +1 -1
  18. package/lib/node/ext/sprite.js.map +1 -1
  19. package/lib/node/physics/physics-object.js +8 -1
  20. package/lib/node/physics/physics-object.js.map +1 -1
  21. package/lib/node/physics/physics-world.js.map +1 -1
  22. package/lib/types/dom/dom-animated-sprite.d.ts +1 -1
  23. package/lib/types/dom/dom-animated-sprite.d.ts.map +1 -1
  24. package/lib/types/dom/dom-game-object.d.ts +1 -1
  25. package/lib/types/dom/dom-game-object.d.ts.map +1 -1
  26. package/lib/types/dom/dom-sprite.d.ts +1 -1
  27. package/lib/types/dom/dom-sprite.d.ts.map +1 -1
  28. package/lib/types/index.d.ts +1 -0
  29. package/lib/types/index.d.ts.map +1 -1
  30. package/lib/types/node/core/game-object.d.ts +1 -1
  31. package/lib/types/node/core/game-object.d.ts.map +1 -1
  32. package/lib/types/node/core/renderable.d.ts +2 -0
  33. package/lib/types/node/core/renderable.d.ts.map +1 -1
  34. package/lib/types/node/ext/animated-sprite.d.ts +1 -1
  35. package/lib/types/node/ext/animated-sprite.d.ts.map +1 -1
  36. package/lib/types/node/ext/bitmap-text.d.ts +4 -2
  37. package/lib/types/node/ext/bitmap-text.d.ts.map +1 -1
  38. package/lib/types/node/ext/spine.d.ts +1 -1
  39. package/lib/types/node/ext/spine.d.ts.map +1 -1
  40. package/lib/types/node/ext/sprite.d.ts +1 -1
  41. package/lib/types/node/ext/sprite.d.ts.map +1 -1
  42. package/lib/types/node/physics/physics-object.d.ts +2 -1
  43. package/lib/types/node/physics/physics-object.d.ts.map +1 -1
  44. package/lib/types/node/physics/physics-world.d.ts +1 -1
  45. package/lib/types/node/physics/physics-world.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/dom/dom-animated-sprite.ts +1 -1
  48. package/src/dom/dom-game-object.ts +1 -1
  49. package/src/dom/dom-sprite.ts +1 -1
  50. package/src/index.ts +1 -0
  51. package/src/node/core/game-object.ts +1 -1
  52. package/src/node/core/renderable.ts +3 -0
  53. package/src/node/ext/animated-sprite.ts +18 -17
  54. package/src/node/ext/bitmap-text.ts +37 -21
  55. package/src/node/ext/spine.ts +1 -1
  56. package/src/node/ext/sprite.ts +1 -1
  57. package/src/node/physics/physics-object.ts +9 -2
  58. package/src/node/physics/physics-world.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"physics-world.js","sourceRoot":"","sources":["../../../src/node/physics/physics-world.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAMnD,MAAM,OAAO,YAA4C,SAAQ,cAAgC;IAC/F,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IAEtC,YAAY,OAA6B;QACvC,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAEpD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC;IAErD,OAAO,CAAC,IAAiB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAC/E,UAAU,CAAC,IAAiB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAElE,MAAM,CAAC,EAAU;QAClC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAEhB,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;QAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjF,CAAC;IAEQ,MAAM;QACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvC,KAAK,CAAC,MAAM,EAAE,CAAA;IAChB,CAAC;CACF","sourcesContent":["import { EventMap } from '@webtaku/event-emitter'\nimport Matter from 'matter-js'\nimport { Container as PixiContainer } from 'pixi.js'\nimport { RenderableNode } from '../core/renderable'\n\nexport type PhysicsWorldOptions = {\n gravity?: number\n}\n\nexport class PhysicsWorld<E extends EventMap = EventMap> extends RenderableNode<PixiContainer, E> {\n #matterEngine = Matter.Engine.create()\n\n constructor(options?: PhysicsWorldOptions) {\n super(new PixiContainer({ sortableChildren: true }))\n\n this.worldTransform.x.v = 0\n this.worldTransform.y.v = 0\n this.worldTransform.resetDirty()\n\n this.gravity = options?.gravity ?? 0\n }\n\n set gravity(v) { this.#matterEngine.gravity.y = v }\n get gravity() { return this.#matterEngine.gravity.y }\n\n addBody(body: Matter.Body) { Matter.World.add(this.#matterEngine.world, body) }\n removeBody(body: Matter.Body) { Matter.World.remove(this.#matterEngine.world, body) }\n\n protected override update(dt: number) {\n if (this.paused) return\n super.update(dt)\n\n const matterDt = dt * 1000\n Matter.Engine.update(this.#matterEngine, matterDt > 16.666 ? 16.666 : matterDt)\n }\n\n override remove() {\n Matter.Engine.clear(this.#matterEngine)\n super.remove()\n }\n}\n"]}
1
+ {"version":3,"file":"physics-world.js","sourceRoot":"","sources":["../../../src/node/physics/physics-world.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAMnD,MAAM,OAAO,YAAsC,SAAQ,cAAgC;IACzF,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IAEtC,YAAY,OAA6B;QACvC,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAEpD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC;IAErD,OAAO,CAAC,IAAiB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAC/E,UAAU,CAAC,IAAiB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAElE,MAAM,CAAC,EAAU;QAClC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAEhB,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;QAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjF,CAAC;IAEQ,MAAM;QACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvC,KAAK,CAAC,MAAM,EAAE,CAAA;IAChB,CAAC;CACF","sourcesContent":["import { EventMap } from '@webtaku/event-emitter'\nimport Matter from 'matter-js'\nimport { Container as PixiContainer } from 'pixi.js'\nimport { RenderableNode } from '../core/renderable'\n\nexport type PhysicsWorldOptions = {\n gravity?: number\n}\n\nexport class PhysicsWorld<E extends EventMap = {}> extends RenderableNode<PixiContainer, E> {\n #matterEngine = Matter.Engine.create()\n\n constructor(options?: PhysicsWorldOptions) {\n super(new PixiContainer({ sortableChildren: true }))\n\n this.worldTransform.x.v = 0\n this.worldTransform.y.v = 0\n this.worldTransform.resetDirty()\n\n this.gravity = options?.gravity ?? 0\n }\n\n set gravity(v) { this.#matterEngine.gravity.y = v }\n get gravity() { return this.#matterEngine.gravity.y }\n\n addBody(body: Matter.Body) { Matter.World.add(this.#matterEngine.world, body) }\n removeBody(body: Matter.Body) { Matter.World.remove(this.#matterEngine.world, body) }\n\n protected override update(dt: number) {\n if (this.paused) return\n super.update(dt)\n\n const matterDt = dt * 1000\n Matter.Engine.update(this.#matterEngine, matterDt > 16.666 ? 16.666 : matterDt)\n }\n\n override remove() {\n Matter.Engine.clear(this.#matterEngine)\n super.remove()\n }\n}\n"]}
@@ -6,7 +6,7 @@ export type DomAnimatedSpriteNodeOptions = {
6
6
  atlas: Atlas;
7
7
  animation: string;
8
8
  } & DomGameObjectOptions;
9
- export declare class DomAnimatedSpriteNode<E extends EventMap = EventMap> extends DomGameObject<E & {
9
+ export declare class DomAnimatedSpriteNode<E extends EventMap = {}> extends DomGameObject<E & {
10
10
  animationend: (animation: string) => void;
11
11
  }> {
12
12
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"dom-animated-sprite.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-animated-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAa,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAIvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,oBAAoB,CAAA;AAExB,qBAAa,qBAAqB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,aAAa,CAAC,CAAC,GAAG;IAC1F,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBAUY,OAAO,EAAE,4BAA4B;IAiCxC,MAAM,CAAC,EAAE,EAAE,MAAM;IAuC1B,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAE9B,IAAI,KAAK,CAAC,KAAK,OAAA,EAMd;IAED,IAAI,KAAK,UAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,QAAA,EAOtB;IAED,IAAI,SAAS,WAA6B;IAEjC,MAAM;CAIhB"}
1
+ {"version":3,"file":"dom-animated-sprite.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-animated-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAa,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAIvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,oBAAoB,CAAA;AAExB,qBAAa,qBAAqB,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,aAAa,CAAC,CAAC,GAAG;IACpF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBAUY,OAAO,EAAE,4BAA4B;IAiCxC,MAAM,CAAC,EAAE,EAAE,MAAM;IAuC1B,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAE9B,IAAI,KAAK,CAAC,KAAK,OAAA,EAMd;IAED,IAAI,KAAK,UAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,QAAA,EAOtB;IAED,IAAI,SAAS,WAA6B;IAEjC,MAAM;CAIhB"}
@@ -15,7 +15,7 @@ export type DomGameObjectOptions = {
15
15
  alpha?: number;
16
16
  useYSort?: boolean;
17
17
  };
18
- export declare class DomGameObject<E extends EventMap = EventMap> extends GameNode<E> {
18
+ export declare class DomGameObject<E extends EventMap = {}> extends GameNode<E> {
19
19
  #private;
20
20
  protected el: HTMLDivElement;
21
21
  worldTransform: WorldTransform;
@@ -1 +1 @@
1
- {"version":3,"file":"dom-game-object.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-game-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvE,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAcD,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;IAC3E,SAAS,CAAC,EAAE,iBAAgC;IAG5C,cAAc,iBAAuB;IACrC,KAAK,SAAI;IACT,UAAU,cAAqB;gBAGnB,OAAO,CAAC,EAAE,oBAAoB;IA0B1C,MAAM,CAAC,EAAE,EAAE,MAAM;IAgCjB,QAAQ,CAAC,MAAM,EAAE,WAAW;IAO5B,IAAI,CAAC,CAAC,CAAC,QAAA,EAAgC;IACvC,IAAI,CAAC,WAAoC;IAEzC,IAAI,CAAC,CAAC,CAAC,QAAA,EAAgC;IACvC,IAAI,CAAC,WAAoC;IAEzC,IAAI,KAAK,CAAC,CAAC,QAAA,EAAsE;IACjF,IAAI,KAAK,WAAyC;IAElD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,QAAQ,CAAC,CAAC,QAAA,EAAuC;IACrD,IAAI,QAAQ,WAA2C;CACxD"}
1
+ {"version":3,"file":"dom-game-object.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-game-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvE,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAcD,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;IACrE,SAAS,CAAC,EAAE,iBAAgC;IAG5C,cAAc,iBAAuB;IACrC,KAAK,SAAI;IACT,UAAU,cAAqB;gBAGnB,OAAO,CAAC,EAAE,oBAAoB;IA0B1C,MAAM,CAAC,EAAE,EAAE,MAAM;IAgCjB,QAAQ,CAAC,MAAM,EAAE,WAAW;IAO5B,IAAI,CAAC,CAAC,CAAC,QAAA,EAAgC;IACvC,IAAI,CAAC,WAAoC;IAEzC,IAAI,CAAC,CAAC,CAAC,QAAA,EAAgC;IACvC,IAAI,CAAC,WAAoC;IAEzC,IAAI,KAAK,CAAC,CAAC,QAAA,EAAsE;IACjF,IAAI,KAAK,WAAyC;IAElD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAqC;IACjD,IAAI,MAAM,WAAyC;IAEnD,IAAI,QAAQ,CAAC,CAAC,QAAA,EAAuC;IACrD,IAAI,QAAQ,WAA2C;CACxD"}
@@ -3,7 +3,7 @@ import { DomGameObject, DomGameObjectOptions } from './dom-game-object';
3
3
  export type DomSpriteNodeOptions = {
4
4
  src: string;
5
5
  } & DomGameObjectOptions;
6
- export declare class DomSpriteNode<E extends EventMap = EventMap> extends DomGameObject<E> {
6
+ export declare class DomSpriteNode<E extends EventMap = {}> extends DomGameObject<E> {
7
7
  #private;
8
8
  constructor(options: DomSpriteNodeOptions);
9
9
  set src(src: string);
@@ -1 +1 @@
1
- {"version":3,"file":"dom-sprite.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAIvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,oBAAoB,CAAA;AAExB,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;;gBAGpE,OAAO,EAAE,oBAAoB;IAuBzC,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAErB,MAAM;CAIhB"}
1
+ {"version":3,"file":"dom-sprite.d.ts","sourceRoot":"","sources":["../../../src/dom/dom-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAIvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,oBAAoB,CAAA;AAExB,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;;gBAG9D,OAAO,EAAE,oBAAoB;IAuBzC,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAErB,MAAM;CAIhB"}
@@ -3,6 +3,7 @@ export { Renderer, RendererOptions } from './renderer/renderer';
3
3
  export { Ticker } from './renderer/ticker';
4
4
  export { musicPlayer, sfxPlayer } from './asset/audio';
5
5
  export { AssetSource, preload } from './asset/preload';
6
+ export { Atlas } from './types/atlas';
6
7
  export { checkCollision } from './collision/check-collision';
7
8
  export { CircleCollider, Collider, ColliderType, EllipseCollider, PolygonCollider, RectangleCollider } from './collision/colliders';
8
9
  export { AnimatedSpriteNode, AnimatedSpriteNodeOptions } from './node/ext/animated-sprite';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGjE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG5H,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGjE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG5H,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
@@ -2,7 +2,7 @@ import { EventMap } from '@webtaku/event-emitter';
2
2
  import { Container as PixiContainer } from 'pixi.js';
3
3
  import { TransformableNode, TransformableNodeOptions } from './transformable';
4
4
  export type GameObjectOptions = {} & TransformableNodeOptions;
5
- export declare class GameObject<E extends EventMap = EventMap> extends TransformableNode<PixiContainer, E> {
5
+ export declare class GameObject<E extends EventMap = {}> extends TransformableNode<PixiContainer, E> {
6
6
  constructor(options?: GameObjectOptions);
7
7
  }
8
8
  //# sourceMappingURL=game-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"game-object.d.ts","sourceRoot":"","sources":["../../../../src/node/core/game-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,EAAE,GAAG,wBAAwB,CAAA;AAE7D,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,EAAE,iBAAiB;CAGxC"}
1
+ {"version":3,"file":"game-object.d.ts","sourceRoot":"","sources":["../../../../src/node/core/game-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,EAAE,GAAG,wBAAwB,CAAA;AAE7D,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,EAAE,iBAAiB;CAGxC"}
@@ -19,5 +19,7 @@ export declare abstract class RenderableNode<C extends PixiContainer, E extends
19
19
  _resetWorldTransformDirty(): void;
20
20
  set tint(t: number);
21
21
  get tint(): number;
22
+ hide(): void;
23
+ show(): void;
22
24
  }
23
25
  //# sourceMappingURL=renderable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../../../src/node/core/renderable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAEzF;AAED,8BAAsB,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;IAEnG,cAAc,EAAE,CAAC,CAAA;IAEjB,cAAc,iBAAuB;IACrC,UAAU,cAAqB;gBAEnB,aAAa,EAAE,CAAC;IAK5B,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAQpD;IAED,SAAS,KAAK,QAAQ,IAVW,QAAQ,GAAG,SAAS,CAYpD;IAEQ,GAAG,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAarC,MAAM;IAKf,qBAAqB;IAMrB,yBAAyB;IAQzB,IAAI,IAAI,CAAC,CAAC,QAAA,EAAkC;IAC5C,IAAI,IAAI,WAAsC;CAC/C"}
1
+ {"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../../../src/node/core/renderable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAEzF;AAED,8BAAsB,cAAc,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;IAEnG,cAAc,EAAE,CAAC,CAAA;IAEjB,cAAc,iBAAuB;IACrC,UAAU,cAAqB;gBAEnB,aAAa,EAAE,CAAC;IAK5B,SAAS,KAAK,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAQpD;IAED,SAAS,KAAK,QAAQ,IAVW,QAAQ,GAAG,SAAS,CAYpD;IAEQ,GAAG,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAarC,MAAM;IAKf,qBAAqB;IAMrB,yBAAyB;IAQzB,IAAI,IAAI,CAAC,CAAC,QAAA,EAAkC;IAC5C,IAAI,IAAI,WAAsC;IAE9C,IAAI;IACJ,IAAI;CACL"}
@@ -6,7 +6,7 @@ export type AnimatedSpriteNodeOptions = {
6
6
  atlas: Atlas;
7
7
  animation: string;
8
8
  } & GameObjectOptions;
9
- export declare class AnimatedSpriteNode<E extends EventMap = EventMap> extends GameObject<E & {
9
+ export declare class AnimatedSpriteNode<E extends EventMap = {}> extends GameObject<E & {
10
10
  animationend: (animation: string) => void;
11
11
  }> {
12
12
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"animated-sprite.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/animated-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,iBAAiB,CAAA;AAErB,qBAAa,kBAAkB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,GAAG;IACpF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBASY,OAAO,EAAE,yBAAyB;IA8C9C,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAE9B,IAAI,KAAK,CAAC,KAAK,OAAA,EAMd;IAED,IAAI,KAAK,UAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,QAAA,EAKtB;IAED,IAAI,SAAS,WAA6B;IAE1C,MAAM;CAIP"}
1
+ {"version":3,"file":"animated-sprite.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/animated-sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,iBAAiB,CAAA;AAErB,qBAAa,kBAAkB,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,UAAU,CAAC,CAAC,GAAG;IAC9E,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBASY,OAAO,EAAE,yBAAyB;IA+C9C,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAE9B,IAAI,KAAK,CAAC,KAAK,OAAA,EAMd;IAED,IAAI,KAAK,UAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,QAAA,EAKtB;IAED,IAAI,SAAS,WAA6B;IAE1C,MAAM;CAIP"}
@@ -3,12 +3,14 @@ import { GameObject, GameObjectOptions } from '../core/game-object';
3
3
  export type BitmapTextNodeOptions = {
4
4
  fnt: string;
5
5
  src: string;
6
- text: string;
6
+ text?: string;
7
7
  } & GameObjectOptions;
8
- export declare class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E> {
8
+ export declare class BitmapTextNode<E extends EventMap = {}> extends GameObject<E> {
9
9
  #private;
10
10
  constructor(options: BitmapTextNodeOptions);
11
11
  changeFont(fnt: string, src: string): void;
12
+ set text(text: string | undefined);
13
+ get text(): string | undefined;
12
14
  remove(): void;
13
15
  }
14
16
  //# sourceMappingURL=bitmap-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmap-text.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/bitmap-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,iBAAiB,CAAA;AAErB,qBAAa,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;;gBAMlE,OAAO,EAAE,qBAAqB;IAkF1C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAS1B,MAAM;CAIhB"}
1
+ {"version":3,"file":"bitmap-text.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/bitmap-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAIjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,iBAAiB,CAAA;AAErB,qBAAa,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;;gBAQ5D,OAAO,EAAE,qBAAqB;IAsF1C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IASnC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAGhC;IAED,IAAI,IAAI,IALO,MAAM,GAAG,SAAS,CAOhC;IAEQ,MAAM;CAIhB"}
@@ -10,7 +10,7 @@ export type SpineNodeOptions = {
10
10
  animation?: string;
11
11
  loop?: boolean;
12
12
  } & GameObjectOptions;
13
- export declare class SpineNode<E extends EventMap = EventMap> extends GameObject<E & {
13
+ export declare class SpineNode<E extends EventMap = {}> extends GameObject<E & {
14
14
  animationend: (animation: string) => void;
15
15
  }> {
16
16
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/spine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAExC,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,iBAAiB,CAAA;AAErB,qBAAa,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,GAAG;IAC3E,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBAcY,OAAO,EAAE,gBAAgB;IA2MrC,IAAI,KAAK,CAAC,KAAK,QAAA,EAKd;IAED,IAAI,KAAK,WAAyB;IAElC,IAAI,OAAO,CAAC,OAAO,iCAAA,EAKlB;IAED,IAAI,OAAO,oCAA2B;IAEtC,IAAI,eAAe,CAAC,eAAe,KAAA,EAKlC;IAED,IAAI,eAAe,QAAmC;IAEtD,IAAI,IAAI,CAAC,IAAI,oBAAA,EAKZ;IAED,IAAI,IAAI,uBAAwB;IAEhC,IAAI,IAAI,CAAC,IAAI,oBAAA,EAKZ;IAED,IAAI,IAAI,uBAAwB;IAEhC,IAAI,KAAK,CAAC,KAAK,sBAAA,EAKd;IAED,IAAI,KAAK,yBAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,oBAAA,EAKtB;IAED,IAAI,SAAS,uBAA6B;IAE1C,IAAI,IAAI,CAAC,IAAI,qBAAA,EAKZ;IAED,IAAI,IAAI,wBAAwB;IAEhC,MAAM;CAUP"}
1
+ {"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/spine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAExC,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,iBAAiB,CAAA;AAErB,qBAAa,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,UAAU,CAAC,CAAC,GAAG;IACrE,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAC;;gBAcY,OAAO,EAAE,gBAAgB;IA2MrC,IAAI,KAAK,CAAC,KAAK,QAAA,EAKd;IAED,IAAI,KAAK,WAAyB;IAElC,IAAI,OAAO,CAAC,OAAO,iCAAA,EAKlB;IAED,IAAI,OAAO,oCAA2B;IAEtC,IAAI,eAAe,CAAC,eAAe,KAAA,EAKlC;IAED,IAAI,eAAe,QAAmC;IAEtD,IAAI,IAAI,CAAC,IAAI,oBAAA,EAKZ;IAED,IAAI,IAAI,uBAAwB;IAEhC,IAAI,IAAI,CAAC,IAAI,oBAAA,EAKZ;IAED,IAAI,IAAI,uBAAwB;IAEhC,IAAI,KAAK,CAAC,KAAK,sBAAA,EAKd;IAED,IAAI,KAAK,yBAAyB;IAElC,IAAI,SAAS,CAAC,SAAS,oBAAA,EAKtB;IAED,IAAI,SAAS,uBAA6B;IAE1C,IAAI,IAAI,CAAC,IAAI,qBAAA,EAKZ;IAED,IAAI,IAAI,wBAAwB;IAEhC,MAAM;CAUP"}
@@ -3,7 +3,7 @@ import { GameObject, GameObjectOptions } from '../core/game-object';
3
3
  export type SpriteNodeOptions = {
4
4
  src: string;
5
5
  } & GameObjectOptions;
6
- export declare class SpriteNode<E extends EventMap = EventMap> extends GameObject<E> {
6
+ export declare class SpriteNode<E extends EventMap = {}> extends GameObject<E> {
7
7
  #private;
8
8
  constructor(options: SpriteNodeOptions);
9
9
  set src(src: string);
@@ -1 +1 @@
1
- {"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,iBAAiB,CAAA;AAErB,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;;gBAI9D,OAAO,EAAE,iBAAiB;IAyBtC,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAErB,MAAM;CAIhB"}
1
+ {"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../../src/node/ext/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,iBAAiB,CAAA;AAErB,qBAAa,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;;gBAIxD,OAAO,EAAE,iBAAiB;IAyBtC,IAAI,GAAG,CAAC,GAAG,QAAA,EAMV;IAED,IAAI,GAAG,WAAuB;IAErB,MAAM;CAIhB"}
@@ -14,7 +14,7 @@ export type PhysicsObjectOptions = {
14
14
  isStatic?: boolean;
15
15
  useYSort?: boolean;
16
16
  };
17
- export declare class PhysicsObject<E extends EventMap = EventMap> extends RenderableNode<PixiContainer, E> {
17
+ export declare class PhysicsObject<E extends EventMap = {}> extends RenderableNode<PixiContainer, E> {
18
18
  #private;
19
19
  constructor(options: PhysicsObjectOptions);
20
20
  protected set parent(parent: GameNode<EventMap> | undefined);
@@ -34,5 +34,6 @@ export declare class PhysicsObject<E extends EventMap = EventMap> extends Render
34
34
  set isStatic(v: boolean);
35
35
  get isStatic(): boolean;
36
36
  disableCollisions(): void;
37
+ enableCollisions(): void;
37
38
  }
38
39
  //# sourceMappingURL=physics-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"physics-object.d.ts","sourceRoot":"","sources":["../../../../src/node/physics/physics-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAA;AAExD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAA;IAEpB,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;;gBAMpF,OAAO,EAAE,oBAAoB;IA+BzC,cAAuB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,EASnE;IAED,cAAuB,MAAM,IAXS,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAanE;IAEQ,qBAAqB;IAyBrB,MAAM;IAKf,IAAI,CAAC,CAAC,CAAC,QAAA,EAAyF;IAChG,IAAI,CAAC,WAAyC;IAE9C,IAAI,CAAC,CAAC,CAAC,QAAA,EAAyF;IAChG,IAAI,CAAC,WAAyC;IAE9C,IAAI,QAAQ,CAAC,CAAC,QAAA,EAA+C;IAC7D,IAAI,QAAQ,WAAoC;IAEhD,IAAI,SAAS,CAAC,CAAC,QAAA,EAAyF;IACxG,IAAI,SAAS,WAAyC;IAEtD,IAAI,SAAS,CAAC,CAAC,QAAA,EAAyF;IACxG,IAAI,SAAS,WAAyC;IAEtD,IAAI,QAAQ,CAAC,CAAC,SAAA,EAAgD;IAC9D,IAAI,QAAQ,YAAuC;IAEnD,iBAAiB;CAGlB"}
1
+ {"version":3,"file":"physics-object.d.ts","sourceRoot":"","sources":["../../../../src/node/physics/physics-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAA;AAExD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAA;IAEpB,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;;gBAO9E,OAAO,EAAE,oBAAoB;IA+BzC,cAAuB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,EASnE;IAED,cAAuB,MAAM,IAXS,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAanE;IAEQ,qBAAqB;IAyBrB,MAAM;IAKf,IAAI,CAAC,CAAC,CAAC,QAAA,EAAyF;IAChG,IAAI,CAAC,WAAyC;IAE9C,IAAI,CAAC,CAAC,CAAC,QAAA,EAAyF;IAChG,IAAI,CAAC,WAAyC;IAE9C,IAAI,QAAQ,CAAC,CAAC,QAAA,EAA+C;IAC7D,IAAI,QAAQ,WAAoC;IAEhD,IAAI,SAAS,CAAC,CAAC,QAAA,EAAyF;IACxG,IAAI,SAAS,WAAyC;IAEtD,IAAI,SAAS,CAAC,CAAC,QAAA,EAAyF;IACxG,IAAI,SAAS,WAAyC;IAEtD,IAAI,QAAQ,CAAC,CAAC,SAAA,EAAgD;IAC9D,IAAI,QAAQ,YAAuC;IAEnD,iBAAiB;IAKjB,gBAAgB;CAIjB"}
@@ -5,7 +5,7 @@ import { RenderableNode } from '../core/renderable';
5
5
  export type PhysicsWorldOptions = {
6
6
  gravity?: number;
7
7
  };
8
- export declare class PhysicsWorld<E extends EventMap = EventMap> extends RenderableNode<PixiContainer, E> {
8
+ export declare class PhysicsWorld<E extends EventMap = {}> extends RenderableNode<PixiContainer, E> {
9
9
  #private;
10
10
  constructor(options?: PhysicsWorldOptions);
11
11
  set gravity(v: number);
@@ -1 +1 @@
1
- {"version":3,"file":"physics-world.d.ts","sourceRoot":"","sources":["../../../../src/node/physics/physics-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;;gBAGnF,OAAO,CAAC,EAAE,mBAAmB;IAUzC,IAAI,OAAO,CAAC,CAAC,QAAA,EAAsC;IACnD,IAAI,OAAO,WAA0C;IAErD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;IACzB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;cAET,MAAM,CAAC,EAAE,EAAE,MAAM;IAQ3B,MAAM;CAIhB"}
1
+ {"version":3,"file":"physics-world.d.ts","sourceRoot":"","sources":["../../../../src/node/physics/physics-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAE,SAAQ,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;;gBAG7E,OAAO,CAAC,EAAE,mBAAmB;IAUzC,IAAI,OAAO,CAAC,CAAC,QAAA,EAAsC;IACnD,IAAI,OAAO,WAA0C;IAErD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;IACzB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;cAET,MAAM,CAAC,EAAE,EAAE,MAAM;IAQ3B,MAAM;CAIhB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiwiengine",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "types": "./lib/types/index.d.ts",
5
5
  "main": "./lib/index.js",
6
6
  "dependencies": {
@@ -10,7 +10,7 @@ export type DomAnimatedSpriteNodeOptions = {
10
10
  animation: string
11
11
  } & DomGameObjectOptions
12
12
 
13
- export class DomAnimatedSpriteNode<E extends EventMap = EventMap> extends DomGameObject<E & {
13
+ export class DomAnimatedSpriteNode<E extends EventMap = {}> extends DomGameObject<E & {
14
14
  animationend: (animation: string) => void
15
15
  }> {
16
16
  #src: string
@@ -34,7 +34,7 @@ class DomRootNode extends GameNode<EventMap> {
34
34
  }
35
35
  }
36
36
 
37
- export class DomGameObject<E extends EventMap = EventMap> extends GameNode<E> {
37
+ export class DomGameObject<E extends EventMap = {}> extends GameNode<E> {
38
38
  protected el = document.createElement('div')
39
39
 
40
40
  #localTransform = new LocalTransform()
@@ -7,7 +7,7 @@ export type DomSpriteNodeOptions = {
7
7
  src: string
8
8
  } & DomGameObjectOptions
9
9
 
10
- export class DomSpriteNode<E extends EventMap = EventMap> extends DomGameObject<E> {
10
+ export class DomSpriteNode<E extends EventMap = {}> extends DomGameObject<E> {
11
11
  #src: string
12
12
 
13
13
  constructor(options: DomSpriteNodeOptions) {
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export { Ticker } from './renderer/ticker'
8
8
  // Assets
9
9
  export { musicPlayer, sfxPlayer } from './asset/audio'
10
10
  export { AssetSource, preload } from './asset/preload'
11
+ export { Atlas } from './types/atlas'
11
12
 
12
13
  // Collision
13
14
  export { checkCollision } from './collision/check-collision'
@@ -4,7 +4,7 @@ import { TransformableNode, TransformableNodeOptions } from './transformable'
4
4
 
5
5
  export type GameObjectOptions = {} & TransformableNodeOptions
6
6
 
7
- export class GameObject<E extends EventMap = EventMap> extends TransformableNode<PixiContainer, E> {
7
+ export class GameObject<E extends EventMap = {}> extends TransformableNode<PixiContainer, E> {
8
8
  constructor(options?: GameObjectOptions) {
9
9
  super(new PixiContainer({ sortableChildren: true }), options ?? {})
10
10
  }
@@ -69,4 +69,7 @@ export abstract class RenderableNode<C extends PixiContainer, E extends EventMap
69
69
 
70
70
  set tint(t) { this._pixiContainer.tint = t }
71
71
  get tint() { return this._pixiContainer.tint }
72
+
73
+ hide() { this._pixiContainer.visible = false }
74
+ show() { this._pixiContainer.visible = true }
72
75
  }
@@ -10,7 +10,7 @@ export type AnimatedSpriteNodeOptions = {
10
10
  animation: string
11
11
  } & GameObjectOptions
12
12
 
13
- export class AnimatedSpriteNode<E extends EventMap = EventMap> extends GameObject<E & {
13
+ export class AnimatedSpriteNode<E extends EventMap = {}> extends GameObject<E & {
14
14
  animationend: (animation: string) => void
15
15
  }> {
16
16
  #src: string
@@ -46,25 +46,26 @@ export class AnimatedSpriteNode<E extends EventMap = EventMap> extends GameObjec
46
46
  this.#sprite?.destroy()
47
47
  this.#sprite = undefined
48
48
 
49
- if (this.#sheet) {
50
- if (!this.#sheet.animations[this.#animation]) {
51
- console.error(`Animation not found: ${this.#animation}`)
52
- return
53
- }
49
+ if (!this.#sheet) return
54
50
 
55
- const a = this.#atlas.animations[this.#animation]
56
- const s = new PixiAnimatedSprite(this.#sheet.animations[this.#animation])
51
+ if (!this.#sheet.animations[this.#animation]) {
52
+ console.error(`Animation not found: ${this.#animation}`)
53
+ return
54
+ }
57
55
 
58
- s.anchor.set(0.5, 0.5)
59
- s.loop = a.loop
60
- s.animationSpeed = a.fps / 60
61
- s.play()
62
- s.onLoop = () => (this as any).emit('animationend', this.#animation)
63
- s.onComplete = () => (this as any).emit('animationend', this.#animation)
56
+ const a = this.#atlas.animations[this.#animation]
57
+ const s = new PixiAnimatedSprite(this.#sheet.animations[this.#animation])
64
58
 
65
- this._pixiContainer.addChild(s)
66
- this.#sprite = s
67
- }
59
+ s.anchor.set(0.5, 0.5)
60
+ s.zIndex = -999999
61
+ s.loop = a.loop
62
+ s.animationSpeed = a.fps / 60
63
+ s.play()
64
+ s.onLoop = () => (this as any).emit('animationend', this.#animation)
65
+ s.onComplete = () => (this as any).emit('animationend', this.#animation)
66
+
67
+ this._pixiContainer.addChild(s)
68
+ this.#sprite = s
68
69
  }
69
70
 
70
71
  set src(src) {
@@ -1,18 +1,21 @@
1
1
  import { EventMap } from '@webtaku/event-emitter'
2
2
  import { Rectangle as PixiRectangle, Sprite as PixiSprite, Texture as PixiTexture } from 'pixi.js'
3
3
  import { bitmapFontLoader } from '../../asset/loaders/bitmap-font'
4
+ import { BitmapFont } from '../../types/bitmap-font'
4
5
  import { GameObject, GameObjectOptions } from '../core/game-object'
5
6
 
6
7
  export type BitmapTextNodeOptions = {
7
8
  fnt: string
8
9
  src: string
9
- text: string
10
+ text?: string
10
11
  } & GameObjectOptions
11
12
 
12
- export class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E> {
13
+ export class BitmapTextNode<E extends EventMap = {}> extends GameObject<E> {
13
14
  #fnt: string
14
15
  #src: string
15
- #text: string
16
+ #text?: string
17
+
18
+ #font?: BitmapFont
16
19
  #sprites: PixiSprite[] = []
17
20
 
18
21
  constructor(options: BitmapTextNodeOptions) {
@@ -23,21 +26,14 @@ export class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E>
23
26
  this.#load()
24
27
  }
25
28
 
26
- async #load() {
27
- let font
28
- if (bitmapFontLoader.checkCached(this.#fnt)) {
29
- font = bitmapFontLoader.getCached(this.#fnt)
30
- } else {
31
- console.info(`Bitmap font not preloaded. Loading now: ${this.#fnt}`)
32
- font = await bitmapFontLoader.load(this.#fnt, this.#src)
33
- }
34
- if (!font) return
35
-
29
+ #updateText() {
36
30
  for (const sprite of this.#sprites) {
37
31
  sprite.destroy()
38
32
  }
39
33
  this.#sprites = []
40
34
 
35
+ if (!this.#font || !this.#text) return
36
+
41
37
  let xPos = 0, yPos = 0
42
38
  let minX = Infinity, minY = Infinity
43
39
  let maxX = -Infinity, maxY = -Infinity
@@ -47,16 +43,16 @@ export class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E>
47
43
 
48
44
  if (charCode === 10) {
49
45
  xPos = 0
50
- yPos += font.lineHeight
46
+ yPos += this.#font.lineHeight
51
47
  continue
52
48
  }
53
49
 
54
- const c = font.chars[charCode]
50
+ const c = this.#font.chars[charCode]
55
51
  if (!c) continue
56
52
 
57
53
  const frame = new PixiRectangle(c.x, c.y, c.width, c.height)
58
- const texture = new PixiTexture({ source: font.texture.source, frame })
59
- const sprite = new PixiSprite(texture)
54
+ const texture = new PixiTexture({ source: this.#font.texture.source, frame })
55
+ const sprite = new PixiSprite({ texture, zIndex: -999999 })
60
56
 
61
57
  const x0 = xPos + c.xoffset
62
58
  const y0 = yPos + c.yoffset
@@ -87,16 +83,27 @@ export class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E>
87
83
  maxY = 0
88
84
  }
89
85
 
90
- const width = maxX - minX
91
- const height = maxY - minY
86
+ const cx = (minX + maxX) / 2
87
+ const cy = (minY + maxY) / 2
92
88
 
93
89
  for (const s of this.#sprites) {
94
- s.x -= width / 2
95
- s.y -= height / 2
90
+ s.x -= cx
91
+ s.y -= cy
96
92
  this._pixiContainer.addChild(s)
97
93
  }
98
94
  }
99
95
 
96
+ async #load() {
97
+ if (bitmapFontLoader.checkCached(this.#fnt)) {
98
+ this.#font = bitmapFontLoader.getCached(this.#fnt)
99
+ } else {
100
+ console.info(`Bitmap font not preloaded. Loading now: ${this.#fnt}`)
101
+ this.#font = await bitmapFontLoader.load(this.#fnt, this.#src)
102
+ }
103
+
104
+ this.#updateText()
105
+ }
106
+
100
107
  changeFont(fnt: string, src: string) {
101
108
  if (this.#fnt !== fnt || this.#src !== src) {
102
109
  bitmapFontLoader.release(this.#fnt)
@@ -106,6 +113,15 @@ export class BitmapTextNode<E extends EventMap = EventMap> extends GameObject<E>
106
113
  }
107
114
  }
108
115
 
116
+ set text(text: string | undefined) {
117
+ this.#text = text
118
+ this.#updateText()
119
+ }
120
+
121
+ get text() {
122
+ return this.#text
123
+ }
124
+
109
125
  override remove() {
110
126
  bitmapFontLoader.release(this.#fnt)
111
127
  super.remove()
@@ -19,7 +19,7 @@ export type SpineNodeOptions = {
19
19
  loop?: boolean
20
20
  } & GameObjectOptions
21
21
 
22
- export class SpineNode<E extends EventMap = EventMap> extends GameObject<E & {
22
+ export class SpineNode<E extends EventMap = {}> extends GameObject<E & {
23
23
  animationend: (animation: string) => void
24
24
  }> {
25
25
  #atlas: string
@@ -7,7 +7,7 @@ export type SpriteNodeOptions = {
7
7
  src: string
8
8
  } & GameObjectOptions
9
9
 
10
- export class SpriteNode<E extends EventMap = EventMap> extends GameObject<E> {
10
+ export class SpriteNode<E extends EventMap = {}> extends GameObject<E> {
11
11
  #src: string
12
12
  #sprite?: PixiSprite
13
13
 
@@ -21,11 +21,12 @@ export type PhysicsObjectOptions = {
21
21
  useYSort?: boolean
22
22
  }
23
23
 
24
- export class PhysicsObject<E extends EventMap = EventMap> extends RenderableNode<PixiContainer, E> {
24
+ export class PhysicsObject<E extends EventMap = {}> extends RenderableNode<PixiContainer, E> {
25
25
  #localTransform = new LocalTransform()
26
26
  #matterBody: Matter.Body
27
27
 
28
28
  #useYSort = false
29
+ #collisionsEnabled = true
29
30
 
30
31
  constructor(options: PhysicsObjectOptions) {
31
32
  super(new PixiContainer({ sortableChildren: true }))
@@ -65,7 +66,7 @@ export class PhysicsObject<E extends EventMap = EventMap> extends RenderableNode
65
66
  : parent.constructor?.name ?? typeof parent
66
67
  throw new Error(`PhysicsObject parent must be PhysicsWorld, but got ${actual}`)
67
68
  }
68
- parent.addBody(this.#matterBody)
69
+ if (this.#collisionsEnabled) parent.addBody(this.#matterBody)
69
70
  super.parent = parent
70
71
  }
71
72
 
@@ -122,6 +123,12 @@ export class PhysicsObject<E extends EventMap = EventMap> extends RenderableNode
122
123
  get isStatic() { return this.#matterBody.isStatic }
123
124
 
124
125
  disableCollisions() {
126
+ this.#collisionsEnabled = false
125
127
  this.#removeFromWorld()
126
128
  }
129
+
130
+ enableCollisions() {
131
+ this.#collisionsEnabled = true;
132
+ (this.parent as PhysicsWorld)?.addBody(this.#matterBody)
133
+ }
127
134
  }
@@ -7,7 +7,7 @@ export type PhysicsWorldOptions = {
7
7
  gravity?: number
8
8
  }
9
9
 
10
- export class PhysicsWorld<E extends EventMap = EventMap> extends RenderableNode<PixiContainer, E> {
10
+ export class PhysicsWorld<E extends EventMap = {}> extends RenderableNode<PixiContainer, E> {
11
11
  #matterEngine = Matter.Engine.create()
12
12
 
13
13
  constructor(options?: PhysicsWorldOptions) {