dino-ge 1.10.8 → 1.11.7

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 (147) hide show
  1. package/dist/{BoundsComponent.d.ts → components/BoundsComponent.d.ts} +1 -1
  2. package/dist/{BoundsComponent.js → components/BoundsComponent.js} +1 -1
  3. package/dist/components/BoundsComponent.js.map +1 -0
  4. package/dist/{EventBusComponent.d.ts → components/EventBusComponent.d.ts} +1 -1
  5. package/dist/{EventBusComponent.js → components/EventBusComponent.js} +1 -1
  6. package/dist/components/EventBusComponent.js.map +1 -0
  7. package/dist/{LineComponent.d.ts → components/LineComponent.d.ts} +1 -1
  8. package/dist/components/LineComponent.js.map +1 -0
  9. package/dist/{PhysicsComponent.d.ts → components/PhysicsComponent.d.ts} +4 -2
  10. package/dist/{PhysicsComponent.js → components/PhysicsComponent.js} +4 -2
  11. package/dist/components/PhysicsComponent.js.map +1 -0
  12. package/dist/{RenderComponent.d.ts → components/RenderComponent.d.ts} +1 -1
  13. package/dist/{RenderComponent.js → components/RenderComponent.js} +1 -1
  14. package/dist/components/RenderComponent.js.map +1 -0
  15. package/dist/{ShapeComponent.js → components/ShapeComponent.js} +1 -2
  16. package/dist/components/ShapeComponent.js.map +1 -0
  17. package/dist/components/SpriteComponent.js.map +1 -0
  18. package/dist/{TagComponent.d.ts → components/TagComponent.d.ts} +4 -2
  19. package/dist/{TagComponent.js → components/TagComponent.js} +4 -3
  20. package/dist/components/TagComponent.js.map +1 -0
  21. package/dist/{TextComponent.d.ts → components/TextComponent.d.ts} +1 -1
  22. package/dist/{TextComponent.js → components/TextComponent.js} +2 -2
  23. package/dist/components/TextComponent.js.map +1 -0
  24. package/dist/components/TilemapComponent.js.map +1 -0
  25. package/dist/{TransformComponent.d.ts → components/TransformComponent.d.ts} +2 -2
  26. package/dist/{TransformComponent.js → components/TransformComponent.js} +2 -2
  27. package/dist/components/TransformComponent.js.map +1 -0
  28. package/dist/{VisibilityComponent.d.ts → components/VisibilityComponent.d.ts} +2 -1
  29. package/dist/components/VisibilityComponent.js +11 -0
  30. package/dist/components/VisibilityComponent.js.map +1 -0
  31. package/dist/{Camera.d.ts → core/Camera.d.ts} +3 -3
  32. package/dist/{Camera.js → core/Camera.js} +3 -3
  33. package/dist/core/Camera.js.map +1 -0
  34. package/dist/{Canvas.d.ts → core/Canvas.d.ts} +1 -1
  35. package/dist/{Canvas.js → core/Canvas.js} +1 -1
  36. package/dist/core/Canvas.js.map +1 -0
  37. package/dist/core/Component.js.map +1 -0
  38. package/dist/{Engine.d.ts → core/Engine.d.ts} +9 -5
  39. package/dist/{Engine.js → core/Engine.js} +35 -16
  40. package/dist/core/Engine.js.map +1 -0
  41. package/dist/{EngineState.d.ts → core/EngineState.d.ts} +4 -2
  42. package/dist/core/EngineState.js.map +1 -0
  43. package/dist/{GameObject.d.ts → core/GameObject.d.ts} +6 -5
  44. package/dist/{GameObject.js → core/GameObject.js} +8 -7
  45. package/dist/core/GameObject.js.map +1 -0
  46. package/dist/{Group.d.ts → core/Group.d.ts} +1 -1
  47. package/dist/{Group.js → core/Group.js} +1 -1
  48. package/dist/core/Group.js.map +1 -0
  49. package/dist/{Input.d.ts → core/Input.d.ts} +3 -3
  50. package/dist/{Input.js → core/Input.js} +15 -8
  51. package/dist/core/Input.js.map +1 -0
  52. package/dist/core/Loader.js.map +1 -0
  53. package/dist/core/ObjectSet.js.map +1 -0
  54. package/dist/{Registry.js → core/Registry.js} +2 -0
  55. package/dist/core/Registry.js.map +1 -0
  56. package/dist/{Scene.d.ts → core/Scene.d.ts} +1 -1
  57. package/dist/{Scene.js → core/Scene.js} +1 -1
  58. package/dist/core/Scene.js.map +1 -0
  59. package/dist/core/System.js.map +1 -0
  60. package/dist/index.d.ts +33 -33
  61. package/dist/index.js +32 -32
  62. package/dist/index.js.map +1 -1
  63. package/dist/{Vector2.d.ts → math/Vector2.d.ts} +1 -1
  64. package/dist/{Vector2.js → math/Vector2.js} +1 -1
  65. package/dist/math/Vector2.js.map +1 -0
  66. package/dist/{Circle.d.ts → objects/Circle.d.ts} +19 -5
  67. package/dist/{Circle.js → objects/Circle.js} +29 -7
  68. package/dist/objects/Circle.js.map +1 -0
  69. package/dist/{Line.d.ts → objects/Line.d.ts} +17 -3
  70. package/dist/objects/Line.js +64 -0
  71. package/dist/objects/Line.js.map +1 -0
  72. package/dist/{Rectangle.d.ts → objects/Rectangle.d.ts} +17 -3
  73. package/dist/objects/Rectangle.js +55 -0
  74. package/dist/objects/Rectangle.js.map +1 -0
  75. package/dist/{Sprite.d.ts → objects/Sprite.d.ts} +17 -3
  76. package/dist/{Sprite.js → objects/Sprite.js} +30 -10
  77. package/dist/objects/Sprite.js.map +1 -0
  78. package/dist/{Text.d.ts → objects/Text.d.ts} +19 -5
  79. package/dist/{Text.js → objects/Text.js} +31 -9
  80. package/dist/objects/Text.js.map +1 -0
  81. package/dist/{Tilemap.d.ts → objects/Tilemap.d.ts} +5 -3
  82. package/dist/{Tilemap.js → objects/Tilemap.js} +5 -5
  83. package/dist/objects/Tilemap.js.map +1 -0
  84. package/dist/{Physics.d.ts → physics/Physics.d.ts} +2 -2
  85. package/dist/{Physics.js → physics/Physics.js} +42 -33
  86. package/dist/physics/Physics.js.map +1 -0
  87. package/dist/{PhysicsSystem.d.ts → systems/PhysicsSystem.d.ts} +2 -2
  88. package/dist/{PhysicsSystem.js → systems/PhysicsSystem.js} +12 -5
  89. package/dist/systems/PhysicsSystem.js.map +1 -0
  90. package/dist/{RenderingSystem.d.ts → systems/RenderingSystem.d.ts} +3 -3
  91. package/dist/{RenderingSystem.js → systems/RenderingSystem.js} +24 -20
  92. package/dist/systems/RenderingSystem.js.map +1 -0
  93. package/package.json +1 -1
  94. package/dist/BoundsComponent.js.map +0 -1
  95. package/dist/Camera.js.map +0 -1
  96. package/dist/Canvas.js.map +0 -1
  97. package/dist/Circle.js.map +0 -1
  98. package/dist/Component.js.map +0 -1
  99. package/dist/Engine.js.map +0 -1
  100. package/dist/EngineState.js.map +0 -1
  101. package/dist/EventBusComponent.js.map +0 -1
  102. package/dist/GameObject.js.map +0 -1
  103. package/dist/Group.js.map +0 -1
  104. package/dist/Input.js.map +0 -1
  105. package/dist/Line.js +0 -41
  106. package/dist/Line.js.map +0 -1
  107. package/dist/LineComponent.js.map +0 -1
  108. package/dist/Loader.js.map +0 -1
  109. package/dist/ObjectSet.js.map +0 -1
  110. package/dist/Physics.js.map +0 -1
  111. package/dist/PhysicsComponent.js.map +0 -1
  112. package/dist/PhysicsSystem.js.map +0 -1
  113. package/dist/Rectangle.js +0 -33
  114. package/dist/Rectangle.js.map +0 -1
  115. package/dist/Registry.js.map +0 -1
  116. package/dist/RenderComponent.js.map +0 -1
  117. package/dist/RenderingSystem.js.map +0 -1
  118. package/dist/Scene.js.map +0 -1
  119. package/dist/ShapeComponent.js.map +0 -1
  120. package/dist/Sprite.js.map +0 -1
  121. package/dist/SpriteComponent.js.map +0 -1
  122. package/dist/System.js.map +0 -1
  123. package/dist/TagComponent.js.map +0 -1
  124. package/dist/Text.js.map +0 -1
  125. package/dist/TextComponent.js.map +0 -1
  126. package/dist/Tilemap.js.map +0 -1
  127. package/dist/TilemapComponent.js.map +0 -1
  128. package/dist/TransformComponent.js.map +0 -1
  129. package/dist/Vector2.js.map +0 -1
  130. package/dist/VisibilityComponent.js +0 -12
  131. package/dist/VisibilityComponent.js.map +0 -1
  132. /package/dist/{LineComponent.js → components/LineComponent.js} +0 -0
  133. /package/dist/{ShapeComponent.d.ts → components/ShapeComponent.d.ts} +0 -0
  134. /package/dist/{SpriteComponent.d.ts → components/SpriteComponent.d.ts} +0 -0
  135. /package/dist/{SpriteComponent.js → components/SpriteComponent.js} +0 -0
  136. /package/dist/{TilemapComponent.d.ts → components/TilemapComponent.d.ts} +0 -0
  137. /package/dist/{TilemapComponent.js → components/TilemapComponent.js} +0 -0
  138. /package/dist/{Component.d.ts → core/Component.d.ts} +0 -0
  139. /package/dist/{Component.js → core/Component.js} +0 -0
  140. /package/dist/{EngineState.js → core/EngineState.js} +0 -0
  141. /package/dist/{Loader.d.ts → core/Loader.d.ts} +0 -0
  142. /package/dist/{Loader.js → core/Loader.js} +0 -0
  143. /package/dist/{ObjectSet.d.ts → core/ObjectSet.d.ts} +0 -0
  144. /package/dist/{ObjectSet.js → core/ObjectSet.js} +0 -0
  145. /package/dist/{Registry.d.ts → core/Registry.d.ts} +0 -0
  146. /package/dist/{System.d.ts → core/System.d.ts} +0 -0
  147. /package/dist/{System.js → core/System.js} +0 -0
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that holds the width and height of an entity.
4
4
  */
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that holds the width and height of an entity.
4
4
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoundsComponent.js","sourceRoot":"","sources":["../../src/components/BoundsComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;IAMpD,YAAY,QAAgB,CAAC,EAAE,SAAiB,CAAC;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that allows an entity to emit and listen for local events.
4
4
  */
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that allows an entity to emit and listen for local events.
4
4
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBusComponent.js","sourceRoot":"","sources":["../../src/components/EventBusComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAAxD;;QACU,WAAM,GAAgB,IAAI,WAAW,EAAE,CAAC;IA4BlD,CAAC;IA1BC;;;;OAIG;IACH,EAAE,CAAC,IAAY,EAAE,QAAsC;QACrD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAA8B,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,IAAY,EAAE,QAAsC;QACtD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAA8B,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,IAAY,EAAE,MAAgB;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import RenderComponent from './RenderComponent.js';
2
- import Vector2 from './Vector2.js';
2
+ import Vector2 from '../math/Vector2.js';
3
3
  /**
4
4
  * Component that holds data for rendering a line.
5
5
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineComponent.js","sourceRoot":"","sources":["../../src/components/LineComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IAQxD,YAAY,WAAmB,EAAE,EAAW,EAAE,EAAW;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,GAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAE/E,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,aAAa,KAAK,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAEtC,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,GAAG,CAAC,SAAS,EAAE,CAAC;QAEhB,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import Component from './Component.js';
2
- import Vector2 from './Vector2.js';
1
+ import Component from '../core/Component.js';
2
+ import Vector2 from '../math/Vector2.js';
3
3
  /**
4
4
  * Component that holds physics-related data for a GameObject.
5
5
  */
@@ -16,4 +16,6 @@ export default class PhysicsComponent extends Component {
16
16
  restitution: number;
17
17
  /** Resistance to sliding. */
18
18
  friction: number;
19
+ /** Whether the object should detect collisions but not respond to them physically. */
20
+ isSensor: boolean;
19
21
  }
@@ -1,5 +1,5 @@
1
- import Component from './Component.js';
2
- import Vector2 from './Vector2.js';
1
+ import Component from '../core/Component.js';
2
+ import Vector2 from '../math/Vector2.js';
3
3
  /**
4
4
  * Component that holds physics-related data for a GameObject.
5
5
  */
@@ -18,6 +18,8 @@ export default class PhysicsComponent extends Component {
18
18
  this.restitution = 0.5;
19
19
  /** Resistance to sliding. */
20
20
  this.friction = 0.2;
21
+ /** Whether the object should detect collisions but not respond to them physically. */
22
+ this.isSensor = false;
21
23
  }
22
24
  }
23
25
  //# sourceMappingURL=PhysicsComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicsComponent.js","sourceRoot":"","sources":["../../src/components/PhysicsComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IAAvD;;QACE,6CAA6C;QAC7C,aAAQ,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,yDAAyD;QACzD,iBAAY,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,wDAAwD;QACxD,SAAI,GAAW,CAAC,CAAC;QACjB,qDAAqD;QACrD,aAAQ,GAAY,KAAK,CAAC;QAC1B,uEAAuE;QACvE,gBAAW,GAAW,GAAG,CAAC;QAC1B,6BAA6B;QAC7B,aAAQ,GAAW,GAAG,CAAC;QACvB,sFAAsF;QACtF,aAAQ,GAAY,KAAK,CAAC;IAC5B,CAAC;CAAA"}
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Base class for all rendering-related components.
4
4
  */
@@ -1,4 +1,4 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Base class for all rendering-related components.
4
4
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderComponent.js","sourceRoot":"","sources":["../../src/components/RenderComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,eAAgB,SAAQ,SAAS;CAM9D"}
@@ -65,7 +65,6 @@ export default class ShapeComponent extends RenderComponent {
65
65
  targetHeight = this._initialWidth * 2;
66
66
  }
67
67
  this.gameObject.bounds = new BoundsComponent(targetWidth, targetHeight);
68
- this.gameObject.addComponent(this.gameObject.bounds);
69
68
  }
70
69
  else {
71
70
  // Sync initial values if bounds already exist
@@ -100,7 +99,7 @@ export default class ShapeComponent extends RenderComponent {
100
99
  else if (this.type === 'circle') {
101
100
  const radius = width / 2;
102
101
  ctx.beginPath();
103
- // In local space center is at (radius, radius)
102
+ // In local space centre is at (radius, radius)
104
103
  ctx.arc(radius, radius, radius, 0, Math.PI * 2);
105
104
  ctx.fill();
106
105
  ctx.closePath();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShapeComponent.js","sourceRoot":"","sources":["../../src/components/ShapeComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteComponent.js","sourceRoot":"","sources":["../../src/components/SpriteComponent.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that holds metadata like tags and rendering order.
4
4
  */
5
5
  export default class TagComponent extends Component {
6
6
  /** A unique identifier for the object type. */
7
7
  tag: string;
8
+ /** Hidden identifier linking runtime object to its source code location. */
9
+ sourceId?: string;
8
10
  private _zIndex;
9
11
  /** Rendering order (lower is background, higher is foreground). */
10
12
  get zIndex(): number;
11
13
  set zIndex(val: number);
12
- constructor(tag?: string, zIndex?: number);
14
+ constructor(tag?: string, zIndex?: number, sourceId?: string);
13
15
  }
@@ -1,5 +1,5 @@
1
- import Component from './Component.js';
2
- import { getEngineState } from './EngineState.js';
1
+ import Component from '../core/Component.js';
2
+ import { getEngineState } from '../core/EngineState.js';
3
3
  /**
4
4
  * Component that holds metadata like tags and rendering order.
5
5
  */
@@ -15,10 +15,11 @@ export default class TagComponent extends Component {
15
15
  }
16
16
  }
17
17
  }
18
- constructor(tag = 'obj', zIndex = 0) {
18
+ constructor(tag = 'obj', zIndex = 0, sourceId) {
19
19
  super();
20
20
  this.tag = tag;
21
21
  this._zIndex = zIndex;
22
+ this.sourceId = sourceId;
22
23
  }
23
24
  }
24
25
  //# sourceMappingURL=TagComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagComponent.js","sourceRoot":"","sources":["../../src/components/TagComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IAOjD,mEAAmE;IACnE,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,GAAW;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,MAAc,KAAK,EAAE,SAAiB,CAAC,EAAE,QAAiB;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import RenderComponent from './RenderComponent.js';
2
- import type { HorizontalAlign, VerticalAlign } from './Text.js';
2
+ import type { HorizontalAlign, VerticalAlign } from '../objects/Text.js';
3
3
  /**
4
4
  * Component that holds data for rendering text.
5
5
  */
@@ -83,12 +83,12 @@ export default class TextComponent extends RenderComponent {
83
83
  }
84
84
  ctx.font = this.font;
85
85
  ctx.fillStyle = this.colour;
86
- ctx.textAlign = this.horizontalAlign;
86
+ ctx.textAlign = (this.horizontalAlign === 'centre' ? 'center' : this.horizontalAlign);
87
87
  ctx.textBaseline = this.verticalAlign;
88
88
  // Calculate draw position based on alignment
89
89
  let x = 0;
90
90
  let y = 0;
91
- if (this.horizontalAlign === 'center')
91
+ if (this.horizontalAlign === 'centre')
92
92
  x = width / 2;
93
93
  else if (this.horizontalAlign === 'right' || this.horizontalAlign === 'end')
94
94
  x = width;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextComponent.js","sourceRoot":"","sources":["../../src/components/TextComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TilemapComponent.js","sourceRoot":"","sources":["../../src/components/TilemapComponent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import Component from './Component.js';
2
- import Vector2 from './Vector2.js';
1
+ import Component from '../core/Component.js';
2
+ import Vector2 from '../math/Vector2.js';
3
3
  /**
4
4
  * Component that holds the position, rotation, and scale of an entity.
5
5
  * Supports hierarchical transformations (parent-child relationships).
@@ -1,5 +1,5 @@
1
- import Component from './Component.js';
2
- import Vector2 from './Vector2.js';
1
+ import Component from '../core/Component.js';
2
+ import Vector2 from '../math/Vector2.js';
3
3
  /**
4
4
  * Component that holds the position, rotation, and scale of an entity.
5
5
  * Supports hierarchical transformations (parent-child relationships).
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformComponent.js","sourceRoot":"","sources":["../../src/components/TransformComponent.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import Component from './Component.js';
1
+ import Component from '../core/Component.js';
2
2
  /**
3
3
  * Component that determines whether an object should be rendered.
4
4
  */
5
5
  export default class VisibilityComponent extends Component {
6
6
  /** Whether the object should be rendered. */
7
7
  visible: boolean;
8
+ constructor(visible?: boolean);
8
9
  }
@@ -0,0 +1,11 @@
1
+ import Component from '../core/Component.js';
2
+ /**
3
+ * Component that determines whether an object should be rendered.
4
+ */
5
+ export default class VisibilityComponent extends Component {
6
+ constructor(visible = true) {
7
+ super();
8
+ this.visible = visible;
9
+ }
10
+ }
11
+ //# sourceMappingURL=VisibilityComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisibilityComponent.js","sourceRoot":"","sources":["../../src/components/VisibilityComponent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,SAAS;IAIxD,YAAY,UAAmB,IAAI;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import Vector2 from './Vector2.js';
1
+ import Vector2 from '../math/Vector2.js';
2
2
  import type GameObject from './GameObject.js';
3
3
  /**
4
4
  * Manages the viewport and transformation of the game world.
@@ -9,11 +9,11 @@ export default class Camera {
9
9
  /** Zoom level of the camera. */
10
10
  zoom: number;
11
11
  /**
12
- * Initializes a new instance of Camera.
12
+ * initialises a new instance of Camera.
13
13
  */
14
14
  constructor();
15
15
  /**
16
- * Centers the camera on a target object.
16
+ * centres the camera on a target object.
17
17
  * @param target The object to follow.
18
18
  * @param viewportWidth Width of the viewport.
19
19
  * @param viewportHeight Height of the viewport.
@@ -1,10 +1,10 @@
1
- import Vector2 from './Vector2.js';
1
+ import Vector2 from '../math/Vector2.js';
2
2
  /**
3
3
  * Manages the viewport and transformation of the game world.
4
4
  */
5
5
  export default class Camera {
6
6
  /**
7
- * Initializes a new instance of Camera.
7
+ * initialises a new instance of Camera.
8
8
  */
9
9
  constructor() {
10
10
  /** Current camera position in world space. */
@@ -13,7 +13,7 @@ export default class Camera {
13
13
  this.zoom = 1;
14
14
  }
15
15
  /**
16
- * Centers the camera on a target object.
16
+ * centres the camera on a target object.
17
17
  * @param target The object to follow.
18
18
  * @param viewportWidth Width of the viewport.
19
19
  * @param viewportHeight Height of the viewport.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../src/core/Camera.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAGzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAMzB;;OAEG;IACH;QARA,8CAA8C;QACvC,aAAQ,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,gCAAgC;QACzB,SAAI,GAAW,CAAC,CAAC;IAKT,CAAC;IAEhB;;;;;OAKG;IACI,MAAM,CAAC,MAAkB,EAAE,aAAqB,EAAE,cAAsB;;QAC7E,MAAM,KAAK,GAAG,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,KAAK,mCAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9F,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAClG,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,KAAa,EAAE,MAAc;QACpD,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,CAAC;CACF"}
@@ -9,7 +9,7 @@ export default class Canvas {
9
9
  onResize?: () => void;
10
10
  private _resizeObserver?;
11
11
  /**
12
- * Initializes a new instance of Canvas.
12
+ * initialises a new instance of Canvas.
13
13
  * @param parentElement Optional HTML element to inject the canvas into.
14
14
  */
15
15
  constructor(parentElement?: HTMLElement);
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export default class Canvas {
6
6
  /**
7
- * Initializes a new instance of Canvas.
7
+ * initialises a new instance of Canvas.
8
8
  * @param parentElement Optional HTML element to inject the canvas into.
9
9
  */
10
10
  constructor(parentElement) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../src/core/Canvas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAQzB;;;OAGG;IACH,YAAY,aAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC;QAE1B,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAElC,4DAA4D;YAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAoB;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,aAA0B;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/core/Component.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAgB,SAAS;CAMtC"}
@@ -1,11 +1,11 @@
1
1
  import GameObject from './GameObject.js';
2
2
  import Scene from './Scene.js';
3
3
  import Camera from './Camera.js';
4
- import RenderingSystem from './RenderingSystem.js';
5
- import type { CollisionManifold } from './Physics.js';
4
+ import RenderingSystem from '../systems/RenderingSystem.js';
5
+ import type { CollisionManifold } from '../physics/Physics.js';
6
6
  import { ObjectSet } from './ObjectSet.js';
7
7
  /**
8
- * Options for initializing the Engine.
8
+ * Options for initialising the Engine.
9
9
  */
10
10
  export interface EngineOpts {
11
11
  /** The ID of the HTML element to inject the canvas into. */
@@ -23,7 +23,7 @@ export interface EngineOpts {
23
23
  * Lifecycle and update callbacks for the engine.
24
24
  */
25
25
  export interface EngineCallbacks {
26
- /** Called once after the engine is initialized. */
26
+ /** Called once after the engine is initialised. */
27
27
  onLoad?: () => void;
28
28
  /** Called every frame for game logic and rendering. */
29
29
  update: () => void;
@@ -80,6 +80,10 @@ export default class Engine {
80
80
  */
81
81
  static get paused(): boolean;
82
82
  static set paused(val: boolean);
83
+ /**
84
+ * Returns the total active time of the game (excluding pause time).
85
+ */
86
+ static get totalTime(): number;
83
87
  /**
84
88
  * Toggle for visual debug mode (hitboxes and stats).
85
89
  */
@@ -167,7 +171,7 @@ export default class Engine {
167
171
  private _fixedDelta;
168
172
  private _fpsValues;
169
173
  /**
170
- * Initializes a new instance of the Engine.
174
+ * initialises a new instance of the Engine.
171
175
  * @param callbacks Lifecycle and update callbacks.
172
176
  * @param opts Configuration options for the engine.
173
177
  */
@@ -1,10 +1,10 @@
1
1
  import Canvas from './Canvas.js';
2
2
  import Input from './Input.js';
3
3
  import Camera from './Camera.js';
4
- import PhysicsSystem from './PhysicsSystem.js';
5
- import RenderingSystem from './RenderingSystem.js';
4
+ import PhysicsSystem from '../systems/PhysicsSystem.js';
5
+ import RenderingSystem from '../systems/RenderingSystem.js';
6
6
  import Registry from './Registry.js';
7
- import PhysicsComponent from './PhysicsComponent.js';
7
+ import PhysicsComponent from '../components/PhysicsComponent.js';
8
8
  import { ObjectSet } from './ObjectSet.js';
9
9
  /**
10
10
  * Shared state for the engine to ensure singletons work across different module loads.
@@ -17,6 +17,8 @@ const createInitialState = () => ({
17
17
  camera: new Camera(),
18
18
  systems: [new PhysicsSystem()],
19
19
  events: new EventTarget(),
20
+ totalPausedTime: 0,
21
+ pauseStartTime: 0,
20
22
  currentScene: null,
21
23
  debugCollisions: [],
22
24
  showPhysicsVectors: false,
@@ -82,9 +84,26 @@ export default class Engine {
82
84
  static set paused(val) {
83
85
  if (this._state.paused !== val) {
84
86
  this._state.paused = val;
87
+ if (val) {
88
+ this._state.pauseStartTime = Date.now();
89
+ }
90
+ else if (this._state.pauseStartTime > 0) {
91
+ this._state.totalPausedTime += Date.now() - this._state.pauseStartTime;
92
+ this._state.pauseStartTime = 0;
93
+ }
85
94
  this.emit('paused', val);
86
95
  }
87
96
  }
97
+ /**
98
+ * Returns the total active time of the game (excluding pause time).
99
+ */
100
+ static get totalTime() {
101
+ let currentPaused = 0;
102
+ if (this.paused && this._state.pauseStartTime > 0) {
103
+ currentPaused = Date.now() - this._state.pauseStartTime;
104
+ }
105
+ return Date.now() - this._state.totalPausedTime - currentPaused;
106
+ }
88
107
  /**
89
108
  * Toggle for visual debug mode (hitboxes and stats).
90
109
  */
@@ -177,7 +196,7 @@ export default class Engine {
177
196
  return Input.mouseY;
178
197
  }
179
198
  /**
180
- * Initializes a new instance of the Engine.
199
+ * initialises a new instance of the Engine.
181
200
  * @param callbacks Lifecycle and update callbacks.
182
201
  * @param opts Configuration options for the engine.
183
202
  */
@@ -287,19 +306,19 @@ export default class Engine {
287
306
  return;
288
307
  if (this._oldTimestamp === 0)
289
308
  this._oldTimestamp = timestamp;
309
+ this._secondsPassed = (timestamp - this._oldTimestamp) / 1000;
310
+ this._oldTimestamp = timestamp;
311
+ // Avoid division by zero on first frame
312
+ if (this._secondsPassed > 0) {
313
+ // Smooth FPS calculation
314
+ const currentFps = 1 / this._secondsPassed;
315
+ this._fpsValues.push(currentFps);
316
+ if (this._fpsValues.length > 30)
317
+ this._fpsValues.shift();
318
+ this.fps = Math.round(this._fpsValues.reduce((a, b) => a + b, 0) / this._fpsValues.length);
319
+ this.frameTime = parseFloat((this._secondsPassed * 1000).toFixed(2));
320
+ }
290
321
  if (!Engine.paused) {
291
- this._secondsPassed = (timestamp - this._oldTimestamp) / 1000;
292
- this._oldTimestamp = timestamp;
293
- // Avoid division by zero on first frame
294
- if (this._secondsPassed > 0) {
295
- // Smooth FPS calculation
296
- const currentFps = 1 / this._secondsPassed;
297
- this._fpsValues.push(currentFps);
298
- if (this._fpsValues.length > 30)
299
- this._fpsValues.shift();
300
- this.fps = Math.round(this._fpsValues.reduce((a, b) => a + b, 0) / this._fpsValues.length);
301
- this.frameTime = parseFloat((this._secondsPassed * 1000).toFixed(2));
302
- }
303
322
  // Fixed update loop
304
323
  this._accumulator += this._secondsPassed;
305
324
  while (this._accumulator >= this._fixedDelta) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import type GameObject from './GameObject.js';
2
2
  import type Scene from './Scene.js';
3
3
  import type Camera from './Camera.js';
4
4
  import type System from './System.js';
5
- import type RenderingSystem from './RenderingSystem.js';
6
- import type { CollisionManifold } from './Physics.js';
5
+ import type RenderingSystem from '../systems/RenderingSystem.js';
6
+ import type { CollisionManifold } from '../physics/Physics.js';
7
7
  import type { ObjectSet } from './ObjectSet.js';
8
8
  /**
9
9
  * Internal state of the engine, shared across instances.
@@ -17,6 +17,8 @@ export interface EngineState {
17
17
  systems: System[];
18
18
  renderingSystem?: RenderingSystem;
19
19
  events: EventTarget;
20
+ totalPausedTime: number;
21
+ pauseStartTime: number;
20
22
  currentScene: Scene | null;
21
23
  debugCollisions: {
22
24
  manifold: CollisionManifold;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EngineState.js","sourceRoot":"","sources":["../../src/core/EngineState.ts"],"names":[],"mappings":"AA8BA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAgB,EAAE;IAC9C,MAAM,MAAM,GAAG,UAA+D,CAAC;IAC/E,OAAO,MAAM,CAAC,qBAAqB,CAAC;AACtC,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import Registry from './Registry.js';
2
2
  import Component from './Component.js';
3
- import TransformComponent from './TransformComponent.js';
4
- import TagComponent from './TagComponent.js';
5
- import BoundsComponent from './BoundsComponent.js';
3
+ import TransformComponent from '../components/TransformComponent.js';
4
+ import TagComponent from '../components/TagComponent.js';
5
+ import BoundsComponent from '../components/BoundsComponent.js';
6
6
  /**
7
7
  * Interface representing an abstract class constructor.
8
8
  */
@@ -34,11 +34,12 @@ export default abstract class GameObject {
34
34
  */
35
35
  set bounds(val: BoundsComponent | undefined);
36
36
  /**
37
- * Initializes a new instance of a GameObject.
37
+ * initialises a new instance of a GameObject.
38
38
  * @param tag A descriptive name for the object.
39
39
  * @param zIndex The rendering order (higher numbers are drawn on top).
40
+ * @param sourceId Hidden identifier linking runtime object to its source code location.
40
41
  */
41
- constructor(tag?: string, zIndex?: number);
42
+ constructor(tag?: string, zIndex?: number, sourceId?: string);
42
43
  /**
43
44
  * Listens for an event on this object's event bus.
44
45
  * @param type The event type.