dino-ge 1.3.3 → 1.3.9

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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Circle.d.ts +3 -3
  3. package/dist/GameObject.d.ts +0 -3
  4. package/dist/GameObject.js +10 -7
  5. package/dist/GameObject.js.map +1 -1
  6. package/dist/Line.d.ts +3 -3
  7. package/dist/Loader.js +4 -0
  8. package/dist/Loader.js.map +1 -1
  9. package/dist/Rectangle.d.ts +3 -3
  10. package/dist/RenderComponent.d.ts +1 -1
  11. package/dist/RenderingSystem.js +0 -5
  12. package/dist/RenderingSystem.js.map +1 -1
  13. package/dist/Sprite.d.ts +1 -1
  14. package/dist/Text.d.ts +12 -12
  15. package/dist/Text.js.map +1 -1
  16. package/dist/Tilemap.d.ts +2 -2
  17. package/dist/Tilemap.js +5 -1
  18. package/dist/Tilemap.js.map +1 -1
  19. package/package.json +8 -4
  20. package/src/Camera.ts +0 -47
  21. package/src/Canvas.ts +0 -24
  22. package/src/Circle.ts +0 -75
  23. package/src/Component.ts +0 -10
  24. package/src/Engine.ts +0 -467
  25. package/src/EventBusComponent.ts +0 -35
  26. package/src/GameObject.ts +0 -199
  27. package/src/Input.ts +0 -117
  28. package/src/Line.ts +0 -69
  29. package/src/LineComponent.ts +0 -45
  30. package/src/Loader.ts +0 -66
  31. package/src/Physics.ts +0 -81
  32. package/src/PhysicsComponent.ts +0 -16
  33. package/src/PhysicsSystem.ts +0 -29
  34. package/src/Rectangle.ts +0 -70
  35. package/src/RenderComponent.ts +0 -15
  36. package/src/RenderingSystem.ts +0 -88
  37. package/src/Scene.ts +0 -30
  38. package/src/ShapeComponent.ts +0 -57
  39. package/src/Sprite.ts +0 -135
  40. package/src/SpriteComponent.ts +0 -130
  41. package/src/System.ts +0 -22
  42. package/src/TagComponent.ts +0 -17
  43. package/src/Text.ts +0 -195
  44. package/src/TextComponent.ts +0 -82
  45. package/src/Tilemap.ts +0 -72
  46. package/src/TilemapComponent.ts +0 -62
  47. package/src/TransformComponent.ts +0 -75
  48. package/src/Vector2.ts +0 -36
  49. package/src/VisibilityComponent.ts +0 -9
  50. package/src/index.ts +0 -30
  51. package/tsconfig.json +0 -16
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Richard Gledhill
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/Circle.d.ts CHANGED
@@ -5,15 +5,15 @@ import GameObject from './GameObject.js';
5
5
  */
6
6
  export interface CircleProps {
7
7
  /** Unique tag for identification. */
8
- tag: string;
8
+ tag?: string;
9
9
  /** Initial position of the circle. */
10
10
  position: Vector2;
11
11
  /** Radius of the circle. */
12
12
  radius: number;
13
13
  /** Fill colour. */
14
- colour: string;
14
+ colour?: string;
15
15
  /** Render order (lower is background). */
16
- zIndex: number;
16
+ zIndex?: number;
17
17
  }
18
18
  /**
19
19
  * A basic circle shape that can be drawn to the screen.
@@ -11,7 +11,6 @@ export default abstract class GameObject {
11
11
  /** Internal components for backward compatibility and core logic. */
12
12
  private _transform;
13
13
  private _tag;
14
- private _eventBus;
15
14
  constructor(tag: string, zIndex: number);
16
15
  /**
17
16
  * Listens for a local event on this entity.
@@ -33,13 +32,11 @@ export default abstract class GameObject {
33
32
  emit(type: string, detail?: unknown): void;
34
33
  /**
35
34
  * A unique identifier for the object type.
36
- * @deprecated Use getComponent(TagComponent).tag
37
35
  */
38
36
  get tag(): string;
39
37
  set tag(val: string);
40
38
  /**
41
39
  * Rendering order (lower is background, higher is foreground).
42
- * @deprecated Use getComponent(TagComponent).zIndex
43
40
  */
44
41
  get zIndex(): number;
45
42
  set zIndex(val: number);
@@ -15,8 +15,6 @@ export default class GameObject {
15
15
  this.addComponent(this._tag);
16
16
  this._transform = new TransformComponent();
17
17
  this.addComponent(this._transform);
18
- this._eventBus = new EventBusComponent();
19
- this.addComponent(this._eventBus);
20
18
  }
21
19
  /**
22
20
  * Listens for a local event on this entity.
@@ -24,7 +22,12 @@ export default class GameObject {
24
22
  * @param callback The function to run when the event occurs.
25
23
  */
26
24
  on(type, callback) {
27
- this._eventBus.on(type, callback);
25
+ let bus = this.getComponent(EventBusComponent);
26
+ if (!bus) {
27
+ bus = new EventBusComponent();
28
+ this.addComponent(bus);
29
+ }
30
+ bus.on(type, callback);
28
31
  }
29
32
  /**
30
33
  * Stops listening for a local event.
@@ -32,7 +35,8 @@ export default class GameObject {
32
35
  * @param callback The function to remove.
33
36
  */
34
37
  off(type, callback) {
35
- this._eventBus.off(type, callback);
38
+ var _a;
39
+ (_a = this.getComponent(EventBusComponent)) === null || _a === void 0 ? void 0 : _a.off(type, callback);
36
40
  }
37
41
  /**
38
42
  * Emits a local event on this entity.
@@ -40,17 +44,16 @@ export default class GameObject {
40
44
  * @param detail Optional data to pass with the event.
41
45
  */
42
46
  emit(type, detail) {
43
- this._eventBus.emit(type, detail);
47
+ var _a;
48
+ (_a = this.getComponent(EventBusComponent)) === null || _a === void 0 ? void 0 : _a.emit(type, detail);
44
49
  }
45
50
  /**
46
51
  * A unique identifier for the object type.
47
- * @deprecated Use getComponent(TagComponent).tag
48
52
  */
49
53
  get tag() { return this._tag.tag; }
50
54
  set tag(val) { this._tag.tag = val; }
51
55
  /**
52
56
  * Rendering order (lower is background, higher is foreground).
53
- * @deprecated Use getComponent(TagComponent).zIndex
54
57
  */
55
58
  get zIndex() { return this._tag.zIndex; }
56
59
  set zIndex(val) { this._tag.zIndex = val; }
@@ -1 +1 @@
1
- {"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../src/GameObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../src/GameObject.ts"],"names":[],"mappings":"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"}
package/dist/Line.d.ts CHANGED
@@ -5,15 +5,15 @@ import Vector2 from './Vector2.js';
5
5
  */
6
6
  export interface LineProperties {
7
7
  /** Unique tag for identification. */
8
- tag: string;
8
+ tag?: string;
9
9
  /** Stroke width of the line. */
10
- width: number;
10
+ width?: number;
11
11
  /** Start point of the line. */
12
12
  p1: Vector2;
13
13
  /** End point of the line. */
14
14
  p2: Vector2;
15
15
  /** Render order (lower is background). */
16
- zIndex: number;
16
+ zIndex?: number;
17
17
  }
18
18
  /**
19
19
  * A basic line object that can be drawn between two points.
package/dist/Loader.js CHANGED
@@ -19,6 +19,10 @@ class ResourceLoader {
19
19
  static queueImage(tag, src) {
20
20
  if (this.assets.has(tag))
21
21
  return;
22
+ // Check if tag already exists in queue
23
+ const isAlreadyQueued = Array.from(this.loadingQueue).some(item => JSON.parse(item).tag === tag);
24
+ if (isAlreadyQueued)
25
+ return;
22
26
  this.loadingQueue.add(JSON.stringify({ tag, src }));
23
27
  this.totalToLoad++;
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.js","sourceRoot":"","sources":["../src/Loader.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,MAAqB,cAAc;IAMjC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,GAAW;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAO,OAAO,CAAC,UAAsC;;YACzD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;oBACd,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,UAAU,EAAE,CAAC;4BACf,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;wBAC1D,CAAC;wBACD,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;oBACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;wBACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;wBAC9C,MAAM,EAAE,CAAC;oBACX,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACvB,CAAC;KAAA;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,sCAAsC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AA5Dc,qBAAM,GAAkC,IAAI,GAAG,EAAE,CAAC;AAClD,2BAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;AACtC,0BAAW,GAAW,CAAC,CAAC;AACxB,0BAAW,GAAW,CAAC,CAAC;eAJpB,cAAc"}
1
+ {"version":3,"file":"Loader.js","sourceRoot":"","sources":["../src/Loader.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;GAEG;AACH,MAAqB,cAAc;IAMjC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,GAAW;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAEjC,uCAAuC;QACvC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjG,IAAI,eAAe;YAAE,OAAO;QAE5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAO,OAAO,CAAC,UAAsC;;YACzD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;oBACd,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,UAAU,EAAE,CAAC;4BACf,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;wBAC1D,CAAC;wBACD,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;oBACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;wBACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;wBAC9C,MAAM,EAAE,CAAC;oBACX,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACvB,CAAC;KAAA;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,sCAAsC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAjEc,qBAAM,GAAkC,IAAI,GAAG,EAAE,CAAC;AAClD,2BAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;AACtC,0BAAW,GAAW,CAAC,CAAC;AACxB,0BAAW,GAAW,CAAC,CAAC;eAJpB,cAAc"}
@@ -5,7 +5,7 @@ import GameObject from './GameObject.js';
5
5
  */
6
6
  export interface RectProps {
7
7
  /** Unique tag for identification. */
8
- tag: string;
8
+ tag?: string;
9
9
  /** Initial position of the top-left corner. */
10
10
  position: Vector2;
11
11
  /** Width of the rectangle. */
@@ -13,9 +13,9 @@ export interface RectProps {
13
13
  /** Height of the rectangle. */
14
14
  height: number;
15
15
  /** Fill colour. */
16
- colour: string;
16
+ colour?: string;
17
17
  /** Render order. */
18
- zIndex: number;
18
+ zIndex?: number;
19
19
  }
20
20
  /**
21
21
  * A basic rectangle shape that can be drawn to the screen.
@@ -6,7 +6,7 @@ export default abstract class RenderComponent extends Component {
6
6
  /** Internal flag to identify rendering components across module instances. */
7
7
  readonly isRenderComponent: boolean;
8
8
  /**
9
- * The actual rendering logic moved from GameObject.
9
+ * The actual rendering logic.
10
10
  * @param ctx The canvas 2D rendering context.
11
11
  */
12
12
  abstract draw(ctx: CanvasRenderingContext2D): void;
@@ -45,11 +45,6 @@ export default class RenderingSystem extends System {
45
45
  if (renderable && isVisible) {
46
46
  renderable.draw(this.ctx);
47
47
  }
48
- // Backward compatibility: call draw() if it exists on the object itself
49
- const legacyObj = object;
50
- if (legacyObj.draw && !(object.getComponent(RenderComponent))) {
51
- legacyObj.draw(this.ctx);
52
- }
53
48
  // Draw debug overlays in world space
54
49
  if (debug) {
55
50
  this.ctx.save();
@@ -1 +1 @@
1
- {"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"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"}
package/dist/Sprite.d.ts CHANGED
@@ -19,7 +19,7 @@ export interface SpriteProps {
19
19
  /** Ending frame column for animation. */
20
20
  endCol: number;
21
21
  /** Rendering order. */
22
- zIndex: number;
22
+ zIndex?: number;
23
23
  }
24
24
  /**
25
25
  * Represents an animated sprite using a spritesheet.
package/dist/Text.d.ts CHANGED
@@ -9,33 +9,33 @@ export type VerticalAlign = 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideog
9
9
  */
10
10
  export interface TextProperties {
11
11
  /** Unique tag for identification. */
12
- tag: string;
12
+ tag?: string;
13
13
  /** Fill colour of the text. */
14
- colour: string;
14
+ colour?: string;
15
15
  /** Optional background box colour. */
16
- backgroundColour: string;
16
+ backgroundColour?: string;
17
17
  /** Font size in pixels. */
18
- fontSize: string;
18
+ fontSize?: string;
19
19
  /** Font family (e.g., 'Arial', 'Helvetica'). */
20
- font: string;
20
+ font?: string;
21
21
  /** The text content to display. */
22
22
  text: string;
23
23
  /** Horizontal alignment relative to the position. */
24
- horizontalAlign: HorizontalAlign;
24
+ horizontalAlign?: HorizontalAlign;
25
25
  /** Vertical alignment relative to the position. */
26
- verticalAlign: VerticalAlign;
26
+ verticalAlign?: VerticalAlign;
27
27
  /** Anchor position for the text. */
28
28
  position: Vector2;
29
29
  /** Optional width for background box. */
30
- width: number;
30
+ width?: number;
31
31
  /** Optional height for background box. */
32
- height: number;
32
+ height?: number;
33
33
  /** Render order. */
34
- zIndex: number;
34
+ zIndex?: number;
35
35
  /** Whether to register with the engine immediately. */
36
- register: boolean;
36
+ register?: boolean;
37
37
  /** Callback for click events. */
38
- onClick: () => void;
38
+ onClick?: () => void;
39
39
  }
40
40
  /**
41
41
  * Represents text that can be drawn to the screen and interact with input.
package/dist/Text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.ts"],"names":[],"mappings":"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"}
package/dist/Tilemap.d.ts CHANGED
@@ -5,7 +5,7 @@ import Vector2 from './Vector2.js';
5
5
  */
6
6
  export interface TilemapProps {
7
7
  /** Unique tag for the object. */
8
- tag: string;
8
+ tag?: string;
9
9
  /** Image element or tag from ResourceLoader. */
10
10
  tileset: HTMLImageElement | string;
11
11
  /** 2D array of tile indices. */
@@ -17,7 +17,7 @@ export interface TilemapProps {
17
17
  /** Initial world position. */
18
18
  position: Vector2;
19
19
  /** Rendering order. */
20
- zIndex: number;
20
+ zIndex?: number;
21
21
  }
22
22
  /**
23
23
  * Represents a grid-based map rendered from a tileset.
package/dist/Tilemap.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import GameObject from './GameObject.js';
2
2
  import ResourceLoader from './Loader.js';
3
3
  import TilemapComponent from './TilemapComponent.js';
4
+ const defaultProps = {
5
+ tag: 'tilemap',
6
+ zIndex: 0
7
+ };
4
8
  /**
5
9
  * Represents a grid-based map rendered from a tileset.
6
10
  */
@@ -14,7 +18,7 @@ export default class Tilemap extends GameObject {
14
18
  return this.data.length * this.tileSize;
15
19
  }
16
20
  constructor(props) {
17
- super(props.tag, props.zIndex);
21
+ super(props.tag || defaultProps.tag, props.zIndex || defaultProps.zIndex);
18
22
  if (typeof props.tileset === 'string') {
19
23
  this.tileset = ResourceLoader.getImage(props.tileset);
20
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tilemap.js","sourceRoot":"","sources":["../src/Tilemap.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,cAAc,MAAM,aAAa,CAAC;AACzC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAsBrD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAU7C,+CAA+C;IAC/C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEpC,IAAI,CAAC,YAAY,CAAC,IAAI,gBAAgB,CACpC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACjB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"Tilemap.js","sourceRoot":"","sources":["../src/Tilemap.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,cAAc,MAAM,aAAa,CAAC;AACzC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAsBrD,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAU7C,+CAA+C;IAC/C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEpC,IAAI,CAAC,YAAY,CAAC,IAAI,gBAAgB,CACpC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACjB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,16 +1,20 @@
1
1
  {
2
2
  "name": "dino-ge",
3
- "version": "1.3.3",
3
+ "version": "1.3.9",
4
4
  "description": "Lightweight, performant 2D game engine built with TypeScript",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "files": [
9
+ "dist/"
10
+ ],
7
11
  "scripts": {
8
- "build": "tsc",
9
- "test": "echo \"Error: no test specified\" && exit 1",
12
+ "build": "tsc -p tsconfig.build.json",
13
+ "test": "jest",
10
14
  "docs": "typedoc --out ../../docs/api src/ --entryPointStrategy expand"
11
15
  },
12
16
  "author": "Rich <richgled25@gmail.com>",
13
- "license": "ISC",
17
+ "license": "MIT",
14
18
  "devDependencies": {
15
19
  "typedoc": "^0.28.18",
16
20
  "typescript": "^5.8.2"
package/src/Camera.ts DELETED
@@ -1,47 +0,0 @@
1
- import Vector2 from './Vector2.js';
2
-
3
- /**
4
- * Manages the viewport and transformation of the game world.
5
- */
6
- export default class Camera {
7
- /** Current camera position in world space. */
8
- public position: Vector2 = new Vector2(0, 0);
9
- /** Zoom level of the camera. */
10
- public zoom: number = 1;
11
-
12
- constructor() {}
13
-
14
- /**
15
- * Center the camera on a target object.
16
- * @param target The object to follow.
17
- * @param viewportWidth Width of the viewport.
18
- * @param viewportHeight Height of the viewport.
19
- */
20
- follow(target: { position: Vector2, width: number, height: number }, viewportWidth: number, viewportHeight: number) {
21
- this.position.x = (target.position.x + target.width / 2) - (viewportWidth / 2) / this.zoom;
22
- this.position.y = (target.position.y + target.height / 2) - (viewportHeight / 2) / this.zoom;
23
- }
24
-
25
- /**
26
- * Returns the current viewport bounds in world space.
27
- * @param width Width of the viewport.
28
- * @param height Height of the viewport.
29
- */
30
- getViewportBounds(width: number, height: number) {
31
- return {
32
- x: this.position.x,
33
- y: this.position.y,
34
- width: width / this.zoom,
35
- height: height / this.zoom
36
- };
37
- }
38
-
39
- /**
40
- * Reset camera position to origin and zoom to 1.
41
- */
42
- reset() {
43
- this.position.x = 0;
44
- this.position.y = 0;
45
- this.zoom = 1;
46
- }
47
- }
package/src/Canvas.ts DELETED
@@ -1,24 +0,0 @@
1
- /**
2
- * Simple wrapper for creating and managing a full-screen canvas element.
3
- */
4
- export default class Canvas {
5
- /** The underlying HTMLCanvasElement. */
6
- canvas: HTMLCanvasElement;
7
-
8
- constructor() {
9
- this.canvas = document.createElement('canvas');
10
- this.canvas.id = 'canvas';
11
- this.canvas.width = window.innerWidth;
12
- this.canvas.height = window.innerHeight;
13
- this.canvas.style.zIndex = '0';
14
- this.canvas.style.position = 'fixed';
15
- }
16
-
17
- /**
18
- * Resizes the canvas to match the window dimensions.
19
- */
20
- resize() {
21
- this.canvas.width = window.innerWidth;
22
- this.canvas.height = window.innerHeight;
23
- }
24
- }
package/src/Circle.ts DELETED
@@ -1,75 +0,0 @@
1
- import Vector2 from './Vector2.js';
2
- import GameObject from './GameObject.js';
3
- import ShapeComponent from './ShapeComponent.js';
4
-
5
- /**
6
- * Configuration for creating a Circle object.
7
- */
8
- export interface CircleProps {
9
- /** Unique tag for identification. */
10
- tag: string;
11
- /** Initial position of the circle. */
12
- position: Vector2;
13
- /** Radius of the circle. */
14
- radius: number;
15
- /** Fill colour. */
16
- colour: string;
17
- /** Render order (lower is background). */
18
- zIndex: number;
19
- }
20
-
21
- const defaultProps = {
22
- tag: 'circle',
23
- colour: 'black',
24
- zIndex: 0,
25
- };
26
-
27
- /**
28
- * A basic circle shape that can be drawn to the screen.
29
- */
30
- export default class Circle extends GameObject {
31
- /** Radius of the circle. */
32
- radius: number;
33
- /** Fill colour. */
34
- colour: string;
35
-
36
- /** Width of the circle (radius * 2). */
37
- get width() { return this.radius * 2; }
38
- /** Height of the circle (radius * 2). */
39
- get height() { return this.radius * 2; }
40
-
41
- /** Center point of the circle. */
42
- get center(): Vector2 {
43
- return new Vector2(
44
- this.position.x + this.radius,
45
- this.position.y + this.radius
46
- );
47
- }
48
-
49
- constructor(props: CircleProps) {
50
- super(props.tag || defaultProps.tag, props.zIndex || defaultProps.zIndex);
51
-
52
- const defaultedProps = {
53
- ...defaultProps,
54
- ...props
55
- };
56
-
57
- if (!(defaultedProps.position instanceof Vector2)) {
58
- throw new Error('"position" must be a Vector2!');
59
- }
60
-
61
- if (!defaultedProps.radius) {
62
- throw new Error('You must provide a radius for Circle');
63
- }
64
-
65
- this.tag = defaultedProps.tag;
66
- this.localPosition = defaultedProps.position;
67
- this.radius = defaultedProps.radius;
68
- this.colour = defaultedProps.colour;
69
- this.zIndex = defaultedProps.zIndex;
70
-
71
- this.addComponent(new ShapeComponent('circle', this.colour, this.radius));
72
-
73
- this.registerSelf();
74
- }
75
- }
package/src/Component.ts DELETED
@@ -1,10 +0,0 @@
1
- import type GameObject from './GameObject.js';
2
-
3
- /**
4
- * Base class for all components in the Entity Component System.
5
- * Components are pure data containers that can be attached to GameObjects.
6
- */
7
- export default abstract class Component {
8
- /** Reference to the GameObject this component is attached to. */
9
- public gameObject?: GameObject;
10
- }