angry-pixel 1.0.5 → 1.0.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 (126) hide show
  1. package/lib/Engine/Component.d.ts +15 -4
  2. package/lib/Engine/Components/Animator.d.ts +0 -1
  3. package/lib/Engine/Components/AudioPlayer.d.ts +0 -1
  4. package/lib/Engine/Components/Camera.d.ts +0 -1
  5. package/lib/Engine/Components/Colliders/BoxCollider.d.ts +0 -1
  6. package/lib/Engine/Components/Colliders/TilemapCollider.d.ts +0 -1
  7. package/lib/Engine/Components/ComponentTypes.d.ts +13 -0
  8. package/lib/Engine/Components/Renderer/CsvTilemapRenderer.d.ts +2 -1
  9. package/lib/Engine/Components/Renderer/SpriteRenderer.d.ts +2 -1
  10. package/lib/Engine/Components/Renderer/TextRenderer.d.ts +8 -1
  11. package/lib/Engine/Components/Renderer/TiledTilemapRenderer.d.ts +1 -1
  12. package/lib/Engine/Components/Renderer/TilemapRenderer.d.ts +16 -3
  13. package/lib/Engine/Components/RigidBody.d.ts +0 -1
  14. package/lib/Engine/Components/Transform.d.ts +0 -1
  15. package/lib/Engine/Core/GameObject/GameObjectManager.d.ts +5 -5
  16. package/lib/Engine/Core/Input/GamepadController.d.ts +1 -1
  17. package/lib/Engine/Core/Rendering/RenderData/ImageRenderData.d.ts +1 -0
  18. package/lib/Engine/Core/Rendering/RenderData/TextRenderData.d.ts +4 -0
  19. package/lib/Engine/Core/Rendering/RenderData/TilemapRenderData.d.ts +1 -0
  20. package/lib/Engine/Core/Rendering/WebGL/ProgramManager.d.ts +7 -3
  21. package/lib/Engine/Core/Rendering/WebGL/Renderer/GeometricRenderer.d.ts +0 -1
  22. package/lib/Engine/Core/Rendering/WebGL/Renderer/ImageRenderer.d.ts +0 -1
  23. package/lib/Engine/Core/Rendering/WebGL/Renderer/TextRenderer.d.ts +2 -1
  24. package/lib/Engine/Core/Rendering/WebGL/Renderer/TilemapRenderer.d.ts +0 -1
  25. package/lib/Engine/Core/Rendering/WebGL/Shader/Legacy/imageFragmentShader.d.ts +1 -1
  26. package/lib/Engine/Core/Rendering/WebGL/Shader/imageFragmentShader.d.ts +1 -1
  27. package/lib/Engine/Core/Rendering/WebGL/Utils.d.ts +3 -2
  28. package/lib/Engine/Facades/GameObjectManagerFacade.d.ts +4 -4
  29. package/lib/Engine/GameObject.d.ts +12 -7
  30. package/lib/Engine/Math/Rotation.d.ts +4 -0
  31. package/lib/Engine/Scene.d.ts +10 -5
  32. package/lib/component/Animation.d.ts +12 -0
  33. package/lib/component/Animator.d.ts +18 -0
  34. package/lib/component/AudioPlayer.d.ts +27 -0
  35. package/lib/component/Camera.d.ts +30 -0
  36. package/lib/component/ComponentTypes.d.ts +14 -0
  37. package/lib/component/RigidBody.d.ts +39 -0
  38. package/lib/component/Sprite.d.ts +31 -0
  39. package/lib/component/Transform.d.ts +32 -0
  40. package/lib/component/colliderComponent/AbstractColliderComponent.d.ts +22 -0
  41. package/lib/component/colliderComponent/BoxCollider.d.ts +32 -0
  42. package/lib/component/colliderComponent/TilemapCollider.d.ts +15 -0
  43. package/lib/component/renderingComponent/MaskRenderer.d.ts +29 -0
  44. package/lib/component/renderingComponent/SpriteRenderer.d.ts +46 -0
  45. package/lib/component/renderingComponent/TextRenderer.d.ts +49 -0
  46. package/lib/component/renderingComponent/tilemap/CsvTilemapRenderer.d.ts +13 -0
  47. package/lib/component/renderingComponent/tilemap/Tile.d.ts +7 -0
  48. package/lib/component/renderingComponent/tilemap/TileData.d.ts +10 -0
  49. package/lib/component/renderingComponent/tilemap/TiledTilemapRenderer.d.ts +43 -0
  50. package/lib/component/renderingComponent/tilemap/TilemapRenderer.d.ts +72 -0
  51. package/lib/component/renderingComponent/tilemap/Tileset.d.ts +25 -0
  52. package/lib/core/Component.d.ts +130 -0
  53. package/lib/core/Game.d.ts +77 -0
  54. package/lib/core/GameObject.d.ts +158 -0
  55. package/lib/core/Scene.d.ts +67 -0
  56. package/lib/core/facades/AssetManagerFacade.d.ts +29 -0
  57. package/lib/core/facades/DomManagerFacade.d.ts +8 -0
  58. package/lib/core/facades/GameObjectManagerFacade.d.ts +54 -0
  59. package/lib/core/facades/InputManagerFacade.d.ts +13 -0
  60. package/lib/core/facades/SceneManagerFacade.d.ts +18 -0
  61. package/lib/core/facades/TimeManagerFacade.d.ts +10 -0
  62. package/lib/core/ioc/Config.d.ts +3 -0
  63. package/lib/core/managers/AssetManager.d.ts +16 -0
  64. package/lib/core/managers/DomManager.d.ts +9 -0
  65. package/lib/core/managers/GameObjectManager.d.ts +17 -0
  66. package/lib/core/managers/IterationManager.d.ts +29 -0
  67. package/lib/core/managers/SceneManager.d.ts +18 -0
  68. package/lib/core/managers/TimeManager.d.ts +18 -0
  69. package/lib/gameObject/GameCamera.d.ts +17 -0
  70. package/lib/gameObject/SpacePointer.d.ts +8 -0
  71. package/lib/index.cjs.js +1 -1
  72. package/lib/index.d.ts +39 -36
  73. package/lib/index.esm.js +1 -1
  74. package/lib/index.js +1 -1
  75. package/lib/input/GamepadController.d.ts +48 -0
  76. package/lib/input/InputManager.d.ts +12 -0
  77. package/lib/input/KeyboardController.d.ts +12 -0
  78. package/lib/input/MouseController.d.ts +21 -0
  79. package/lib/input/TouchController.d.ts +13 -0
  80. package/lib/math/Rectangle.d.ts +50 -0
  81. package/lib/math/Rotation.d.ts +16 -0
  82. package/lib/math/Utils.d.ts +33 -0
  83. package/lib/math/Vector2.d.ts +114 -0
  84. package/lib/physics/collision/CollisionData.d.ts +8 -0
  85. package/lib/physics/collision/CollisionManager.d.ts +27 -0
  86. package/lib/physics/collision/QuadTree.d.ts +32 -0
  87. package/lib/physics/collision/collider/ICollider.d.ts +13 -0
  88. package/lib/physics/collision/collider/RectangleCollider.d.ts +31 -0
  89. package/lib/physics/collision/resolver/AABBResolver.d.ts +14 -0
  90. package/lib/physics/collision/resolver/ICollisionResolver.d.ts +5 -0
  91. package/lib/physics/collision/resolver/SatResolver.d.ts +14 -0
  92. package/lib/physics/collision/shape/Rectangle.d.ts +13 -0
  93. package/lib/physics/collision/shape/Shape.d.ts +28 -0
  94. package/lib/rendering/CameraData.d.ts +9 -0
  95. package/lib/rendering/ContextRenderer.d.ts +6 -0
  96. package/lib/rendering/CullingService.d.ts +11 -0
  97. package/lib/rendering/FontAtlasFactory.d.ts +24 -0
  98. package/lib/rendering/RenderManager.d.ts +22 -0
  99. package/lib/rendering/context2D/Context2DRenderer.d.ts +19 -0
  100. package/lib/rendering/renderData/ColliderRenderData.d.ts +7 -0
  101. package/lib/rendering/renderData/GeometricRenderData.d.ts +12 -0
  102. package/lib/rendering/renderData/ImageRenderData.d.ts +22 -0
  103. package/lib/rendering/renderData/MaskRenderData.d.ts +9 -0
  104. package/lib/rendering/renderData/RenderData.d.ts +23 -0
  105. package/lib/rendering/renderData/TextRenderData.d.ts +22 -0
  106. package/lib/rendering/renderData/TilemapRenderData.d.ts +22 -0
  107. package/lib/rendering/webGL/ProgramFactory.d.ts +7 -0
  108. package/lib/rendering/webGL/ProgramManager.d.ts +26 -0
  109. package/lib/rendering/webGL/ShaderLoader.d.ts +3 -0
  110. package/lib/rendering/webGL/TextureFactory.d.ts +8 -0
  111. package/lib/rendering/webGL/TextureManager.d.ts +11 -0
  112. package/lib/rendering/webGL/Utils.d.ts +7 -0
  113. package/lib/rendering/webGL/WebGLRenderer.d.ts +36 -0
  114. package/lib/rendering/webGL/renderer/GeometricRenderer.d.ts +22 -0
  115. package/lib/rendering/webGL/renderer/ImageRenderer.d.ts +16 -0
  116. package/lib/rendering/webGL/renderer/MaskRenderer.d.ts +14 -0
  117. package/lib/rendering/webGL/renderer/TextRenderer.d.ts +21 -0
  118. package/lib/rendering/webGL/renderer/TilemapRenderer.d.ts +19 -0
  119. package/lib/rendering/webGL/shader/imageFragmentShader.d.ts +1 -0
  120. package/lib/rendering/webGL/shader/imageVertexShader.d.ts +1 -0
  121. package/lib/rendering/webGL/shader/legacy/imageFragmentShader.d.ts +1 -0
  122. package/lib/rendering/webGL/shader/legacy/imageVertexShader.d.ts +1 -0
  123. package/lib/utils/Container.d.ts +12 -0
  124. package/lib/utils/Exception.d.ts +4 -0
  125. package/lib/utils/UUID.d.ts +1 -0
  126. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ import { PhysicsComponent } from "../core/Component";
2
+ import { Vector2 } from "../math/Vector2";
3
+ export declare enum RigidBodyType {
4
+ Static = 0,
5
+ Dynamic = 1
6
+ }
7
+ export interface RigidBodyConfig {
8
+ rigidBodyType: RigidBodyType;
9
+ layersToCollide?: string[];
10
+ gravity?: number;
11
+ }
12
+ export declare class RigidBody extends PhysicsComponent {
13
+ private timeManager;
14
+ private _rigidBodyType;
15
+ private _colliderComponents;
16
+ private _layersToCollide;
17
+ private _velocity;
18
+ private _gravity;
19
+ private deltaGravity;
20
+ private deltaVelocity;
21
+ private collisions;
22
+ private penetrationPerDirection;
23
+ private updatePosition;
24
+ private penetrationResolution;
25
+ constructor(config: RigidBodyConfig);
26
+ get rigidBodyType(): RigidBodyType;
27
+ set velocity(velocity: Vector2);
28
+ get velocity(): Vector2;
29
+ set gravity(gravity: number);
30
+ get gravity(): number;
31
+ protected start(): void;
32
+ protected update(): void;
33
+ private applyGravity;
34
+ private applyVelocity;
35
+ private applyReposition;
36
+ private setPenetrationPerDirectionPerAxis;
37
+ private setPenetrationResolution;
38
+ private updateCollisions;
39
+ }
@@ -0,0 +1,31 @@
1
+ import { Vector2 } from "../math/Vector2";
2
+ export interface SpriteConfig {
3
+ image: HTMLImageElement;
4
+ scale?: Vector2;
5
+ slice?: Slice | null;
6
+ smooth?: boolean;
7
+ }
8
+ export interface Slice {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export declare class Sprite {
15
+ private _image;
16
+ private _slice;
17
+ private _scale;
18
+ private _smooth;
19
+ private _width;
20
+ private _height;
21
+ private _loaded;
22
+ constructor(config: SpriteConfig);
23
+ get loaded(): boolean;
24
+ get image(): HTMLImageElement;
25
+ get slice(): Slice;
26
+ get scale(): Vector2;
27
+ get smooth(): boolean;
28
+ get width(): number;
29
+ get height(): number;
30
+ private onLoad;
31
+ }
@@ -0,0 +1,32 @@
1
+ import { TransformComponent } from "../core/Component";
2
+ import { Rotation } from "../math/Rotation";
3
+ import { Vector2 } from "../math/Vector2";
4
+ export declare class Transform extends TransformComponent {
5
+ private _position;
6
+ private _scale;
7
+ private _rotation;
8
+ private _innerPosition;
9
+ private _parent;
10
+ parentScale: boolean;
11
+ parentRotation: boolean;
12
+ private cache;
13
+ private lastParentRadians;
14
+ private lastPosition;
15
+ private scaledInnerPosition;
16
+ constructor();
17
+ get position(): Vector2;
18
+ set position(position: Vector2);
19
+ get scale(): Vector2;
20
+ set scale(scale: Vector2);
21
+ get rotation(): Rotation;
22
+ get direction(): Vector2;
23
+ get innerPosition(): Vector2;
24
+ set innerPosition(innerPosition: Vector2);
25
+ get parent(): Transform | null;
26
+ set parent(parent: Transform | null);
27
+ protected update(): void;
28
+ private updateInnerPositionFromParent;
29
+ private setPositionFromParent;
30
+ private translateInnerPosition;
31
+ private updateScaledInnerPosition;
32
+ }
@@ -0,0 +1,22 @@
1
+ import { ColliderComponent, RenderComponent } from "../../core/Component";
2
+ import { ICollider } from "../../physics/collision/collider/ICollider";
3
+ import { Collision, CollisionManager } from "../../physics/collision/CollisionManager";
4
+ export declare abstract class AbstractColliderComponent extends ColliderComponent {
5
+ protected collisionManager: CollisionManager;
6
+ protected colliders: ICollider[];
7
+ protected _physics: boolean;
8
+ protected renderer: RenderComponent;
9
+ private collisionsCache;
10
+ constructor();
11
+ get physics(): boolean;
12
+ protected abstract updatePosition(): void;
13
+ protected addCollider(collider: ICollider): void;
14
+ collidesWithLayer(layer: string): boolean;
15
+ getCollisionWithLayer(layer: string): Collision | null;
16
+ getCollisionsWithLayer(layer: string): Collision[];
17
+ setActive(active: boolean): void;
18
+ /**
19
+ * @description NOTE: Do not call this method. Use GameObject.setComponentActive instead.
20
+ */
21
+ destroy(): void;
22
+ }
@@ -0,0 +1,32 @@
1
+ import { AbstractColliderComponent } from "./AbstractColliderComponent";
2
+ import { Rotation } from "../../math/Rotation";
3
+ export interface BoxColliderConfig {
4
+ width: number;
5
+ height: number;
6
+ offsetX?: number;
7
+ offsetY?: number;
8
+ rotation?: Rotation;
9
+ physics?: boolean;
10
+ debug?: boolean;
11
+ }
12
+ export declare class BoxCollider extends AbstractColliderComponent {
13
+ debug: boolean;
14
+ width: number;
15
+ height: number;
16
+ offsetX: number;
17
+ offsetY: number;
18
+ rotation: Rotation;
19
+ private realWidth;
20
+ private realHeight;
21
+ private realOffset;
22
+ private realPosition;
23
+ private realRotation;
24
+ private applyRotation;
25
+ private innerPosition;
26
+ constructor(config: BoxColliderConfig);
27
+ protected start(): void;
28
+ protected update(): void;
29
+ protected updatePosition(): void;
30
+ private updateRealSize;
31
+ private translate;
32
+ }
@@ -0,0 +1,15 @@
1
+ import { TilemapRenderer } from "../renderingComponent/tilemap/TilemapRenderer";
2
+ import { AbstractColliderComponent } from "./AbstractColliderComponent";
3
+ export interface TilemapColliderConfig {
4
+ tilemapRenderer: TilemapRenderer;
5
+ debug?: boolean;
6
+ }
7
+ export declare class TilemapCollider extends AbstractColliderComponent {
8
+ private tilemapRenderer;
9
+ private debug;
10
+ private cacheVertex;
11
+ constructor(config: TilemapColliderConfig);
12
+ protected start(): void;
13
+ private needsCollider;
14
+ protected updatePosition(): void;
15
+ }
@@ -0,0 +1,29 @@
1
+ import { RenderComponent } from "../../core/Component";
2
+ import { Rotation } from "../../math/Rotation";
3
+ import { Vector2 } from "../../math/Vector2";
4
+ export interface MaskRendererConfig {
5
+ width: number;
6
+ height: number;
7
+ color: string;
8
+ offset?: Vector2;
9
+ rotation?: Rotation;
10
+ opacity?: number;
11
+ layer?: string;
12
+ }
13
+ export declare class MaskRenderer extends RenderComponent {
14
+ private renderManager;
15
+ width: number;
16
+ height: number;
17
+ color: string;
18
+ offset: Vector2;
19
+ rotation: Rotation;
20
+ opacity: number;
21
+ layer: string;
22
+ private renderData;
23
+ private innerPosition;
24
+ private scaledOffset;
25
+ constructor(config: MaskRendererConfig);
26
+ protected update(): void;
27
+ private calculateRenderPosition;
28
+ private translateRenderPosition;
29
+ }
@@ -0,0 +1,46 @@
1
+ import { RenderComponent } from "../../core/Component";
2
+ import { Rotation } from "../../math/Rotation";
3
+ import { Vector2 } from "../../math/Vector2";
4
+ import { Sprite } from "../Sprite";
5
+ export interface SpriteRendererConfig {
6
+ sprite?: Sprite;
7
+ offset?: Vector2;
8
+ smooth?: boolean;
9
+ rotation?: Rotation;
10
+ flipHorizontal?: boolean;
11
+ flipVertical?: boolean;
12
+ opacity?: number;
13
+ tiled?: Vector2;
14
+ maskColor?: string;
15
+ maskColorMix?: number;
16
+ tintColor?: string;
17
+ layer?: string;
18
+ }
19
+ export declare class SpriteRenderer extends RenderComponent {
20
+ private renderManager;
21
+ sprite: Sprite;
22
+ offset: Vector2;
23
+ flipHorizontal: boolean;
24
+ flipVertical: boolean;
25
+ rotation: Rotation;
26
+ smooth: boolean;
27
+ opacity: number;
28
+ private _tiled;
29
+ maskColor: string;
30
+ maskColorMix: number;
31
+ tintColor: string;
32
+ layer: string;
33
+ private renderData;
34
+ private innerPosition;
35
+ private cachePosition;
36
+ private cacheRenderPosition;
37
+ private scaledOffset;
38
+ constructor(config?: SpriteRendererConfig);
39
+ get tiled(): Vector2;
40
+ set tiled(tiled: Vector2);
41
+ protected update(): void;
42
+ private updateRenderDataArray;
43
+ private updateRenderData;
44
+ private calculateRenderPosition;
45
+ private translateRenderPosition;
46
+ }
@@ -0,0 +1,49 @@
1
+ import { RenderComponent } from "../../core/Component";
2
+ import { Orientation } from "../../rendering/renderData/TextRenderData";
3
+ import { Rotation } from "../../math/Rotation";
4
+ import { Vector2 } from "../../math/Vector2";
5
+ export interface TextRendererConfig {
6
+ text: string;
7
+ fontFamily: string;
8
+ fontUrl?: string;
9
+ fontSize?: number;
10
+ color?: string;
11
+ lineSeparation?: number;
12
+ letterSpacing?: number;
13
+ width?: number;
14
+ height?: number;
15
+ offset?: Vector2;
16
+ smooth?: boolean;
17
+ charRanges?: number[];
18
+ bitmapSize?: number;
19
+ bitmapOffset?: Vector2;
20
+ rotation?: Rotation;
21
+ opacity?: number;
22
+ orientation?: Orientation;
23
+ }
24
+ export declare class TextRenderer extends RenderComponent {
25
+ text: string;
26
+ fontFamily: string;
27
+ fontUrl: string;
28
+ fontSize: number;
29
+ width: number;
30
+ height: number;
31
+ offset: Vector2;
32
+ color: string;
33
+ lineSeparation: number;
34
+ letterSpacing: number;
35
+ bitmapSize: number;
36
+ charRanges: number[];
37
+ smooth: boolean;
38
+ bitmapOffset: Vector2;
39
+ rotation: Rotation;
40
+ opacity: number;
41
+ orientation: Orientation;
42
+ private renderManager;
43
+ private renderData;
44
+ private lastFrameText;
45
+ constructor(config: TextRendererConfig);
46
+ protected start(): void;
47
+ protected update(): void;
48
+ private crop;
49
+ }
@@ -0,0 +1,13 @@
1
+ import { TilemapRenderer, TilemapRendererConfig } from "./TilemapRenderer";
2
+ export interface CsvTilemapConfig extends TilemapRendererConfig {
3
+ tilemapData: string;
4
+ alpha?: number;
5
+ tintColor?: string;
6
+ }
7
+ export declare class CsvTilemapRenderer extends TilemapRenderer {
8
+ readonly tilemapData: string;
9
+ readonly alpha: number;
10
+ readonly tintColor: string;
11
+ constructor(config: CsvTilemapConfig);
12
+ protected processTilemap(): void;
13
+ }
@@ -0,0 +1,7 @@
1
+ export declare class Tile {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ constructor(x: number, y: number, width: number, height: number);
7
+ }
@@ -0,0 +1,10 @@
1
+ import { Vector2 } from "../../../math/Vector2";
2
+ export declare class TileData {
3
+ private _position;
4
+ private _width;
5
+ private _height;
6
+ constructor(position: Vector2, width: number, height: number);
7
+ get position(): Vector2;
8
+ get width(): number;
9
+ get height(): number;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { TilemapRenderer, TilemapRendererConfig } from "./TilemapRenderer";
2
+ export interface TiledTilemapConfig extends TilemapRendererConfig {
3
+ tilemapData: TiledTilemap;
4
+ layerName?: string;
5
+ }
6
+ export declare class TiledTilemapRenderer extends TilemapRenderer {
7
+ readonly tiledTilemap: TiledTilemap;
8
+ readonly layerName: string;
9
+ constructor(config: TiledTilemapConfig);
10
+ protected processTilemap(): void;
11
+ private processChunk;
12
+ }
13
+ export interface TiledTilemap {
14
+ width: number;
15
+ height: number;
16
+ infinite: boolean;
17
+ layers: TiledLayer[];
18
+ renderorder: string;
19
+ }
20
+ export interface TiledChunk {
21
+ data: number[];
22
+ x: number;
23
+ y: number;
24
+ width: number;
25
+ height: number;
26
+ }
27
+ export interface TiledLayer {
28
+ name: string;
29
+ id: number;
30
+ chunks?: TiledChunk[];
31
+ data?: number[];
32
+ x: number;
33
+ y: number;
34
+ width: number;
35
+ height: number;
36
+ opacity: number;
37
+ visible: boolean;
38
+ startx?: number;
39
+ starty?: number;
40
+ offsetx?: number;
41
+ offsety?: number;
42
+ tintcolor?: string;
43
+ }
@@ -0,0 +1,72 @@
1
+ import { RenderComponent } from "../../../core/Component";
2
+ import { RenderManager } from "../../../rendering/RenderManager";
3
+ import { Vector2 } from "../../../math/Vector2";
4
+ import { Tileset } from "./Tileset";
5
+ import { TileData } from "./TileData";
6
+ import { Tile } from "./Tile";
7
+ import { TilemapRenderData, TileRenderData } from "../../../rendering/renderData/TilemapRenderData";
8
+ export declare type Flip = {
9
+ h: boolean;
10
+ v: boolean;
11
+ };
12
+ export declare type Offset = {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ export declare type RenderOrder = "center" | "right-down" | "right-up" | "left-down" | "left-right";
17
+ export declare type LayerToProcess = {
18
+ layer: string;
19
+ alpha: number;
20
+ tintColor: string;
21
+ };
22
+ export declare type TileToProcess = {
23
+ layer: string;
24
+ tile: Tile;
25
+ col: number;
26
+ row: number;
27
+ flip: Flip;
28
+ offset: Offset;
29
+ };
30
+ export interface TilemapRendererConfig {
31
+ tileset: Tileset;
32
+ renderOrder?: RenderOrder;
33
+ smooth?: boolean;
34
+ textureCorrection?: number;
35
+ tileScale?: Vector2;
36
+ }
37
+ export declare abstract class TilemapRenderer extends RenderComponent {
38
+ readonly tileset: Tileset;
39
+ readonly renderOrder: RenderOrder;
40
+ readonly smooth: boolean;
41
+ readonly textureCorrection: number;
42
+ readonly tileScale: Vector2;
43
+ protected tileWidth: number;
44
+ protected tileHeight: number;
45
+ protected orientation: Vector2;
46
+ protected renderManager: RenderManager;
47
+ protected tilemapProcessed: boolean;
48
+ protected renderData: Map<string, TilemapRenderData>;
49
+ private cols;
50
+ private rows;
51
+ protected _width: number;
52
+ protected _height: number;
53
+ protected tiles: TileData[];
54
+ protected _realWidth: number;
55
+ protected _realHeight: number;
56
+ private cacheV2;
57
+ constructor(config: TilemapRendererConfig);
58
+ protected start(): void;
59
+ protected update(): void;
60
+ protected abstract processTilemap(): void;
61
+ protected processLayer(data: LayerToProcess): void;
62
+ protected processTile(data: TileToProcess): void;
63
+ private addTileToRenderData;
64
+ private updateSizeInfo;
65
+ private updatePosition;
66
+ protected addTileData(tileRenderData: TileRenderData): void;
67
+ get width(): number;
68
+ get height(): number;
69
+ get realWidth(): number;
70
+ get realHeight(): number;
71
+ get tilesData(): TileData[];
72
+ }
@@ -0,0 +1,25 @@
1
+ import { Vector2 } from "../../../math/Vector2";
2
+ import { Tile } from "./Tile";
3
+ export interface TilesetConfig {
4
+ image: HTMLImageElement;
5
+ tileWidth: number;
6
+ tileHeight: number;
7
+ gridWidth: number;
8
+ gridHeight: number;
9
+ offset?: Vector2;
10
+ spacing?: Vector2;
11
+ }
12
+ export declare class Tileset {
13
+ image: HTMLImageElement;
14
+ tileWidth: number;
15
+ tileHeight: number;
16
+ gridWidth: number;
17
+ gridHeight: number;
18
+ offset: Vector2;
19
+ tileSpacing: Vector2;
20
+ private _tiles;
21
+ constructor(config: TilesetConfig);
22
+ private generateTiles;
23
+ getTile(index: number): Tile | null;
24
+ get tiles(): Tile[];
25
+ }
@@ -0,0 +1,130 @@
1
+ import { GameObjectFactory } from "./managers/GameObjectManager";
2
+ import { GameObject } from "./GameObject";
3
+ import { Scene } from "./Scene";
4
+ export declare abstract class Component {
5
+ private sceneManager;
6
+ private gameObjectManager;
7
+ readonly id: string;
8
+ allowMultiple: boolean;
9
+ type: string;
10
+ name: string;
11
+ gameObject: GameObject;
12
+ private _active;
13
+ private started;
14
+ constructor();
15
+ protected get updateEvent(): string;
16
+ get active(): boolean;
17
+ /**
18
+ * If the component become inactive, will stop its execution
19
+ *
20
+ * @param active TRUE or FALSE
21
+ */
22
+ setActive(active: boolean): void;
23
+ protected gameLoopEventHandler: (event: Event) => void;
24
+ /**
25
+ * This method is only ever called once.
26
+ * Recommended for GameObject cration.
27
+ */
28
+ init(): void;
29
+ /**
30
+ * This method is only ever called once
31
+ */
32
+ protected start(): void;
33
+ /**
34
+ * This method is called on every frame.
35
+ */
36
+ protected update(): void;
37
+ /**
38
+ * @returns The current loaded scene
39
+ */
40
+ protected getCurrentScene<T extends Scene>(): T;
41
+ /**
42
+ * @param gameObjectFactory The factory function for the game object
43
+ * @param name The name of the game object, this must not be used by another game object
44
+ * @returns The added game object
45
+ */
46
+ protected addGameObject<T extends GameObject>(gameObjectFactory: GameObjectFactory, name: string): T;
47
+ /**
48
+ * @param name The name of the component to find
49
+ * @returns The found component
50
+ */
51
+ protected getComponentByName<T extends Component>(name: string): T;
52
+ /**
53
+ * @param type The type of the component to find
54
+ * @returns The found component
55
+ */
56
+ protected getComponentByType<T extends Component>(type: string): T;
57
+ /**
58
+ * @param type The type of the components to find
59
+ * @returns The found components
60
+ */
61
+ protected getComponentsByType<T extends Component>(type: string): T[];
62
+ /**
63
+ * @param name The name of the game object to find
64
+ * @returns The found game object
65
+ */
66
+ protected findGameObjectByName<T extends GameObject>(name: string): T;
67
+ /**
68
+ * @param tag The tag of the game objects to find
69
+ * @returns The found game objects
70
+ */
71
+ protected findGameObjectsByTag(tag: string): GameObject[];
72
+ /**
73
+ * @param tag The tag of the game object to find
74
+ * @returns The found game object
75
+ */
76
+ protected findGameObjectByTag<T extends GameObject>(tag: string): T;
77
+ /**
78
+ * Destroy one game objects by its name
79
+ * @param name The name of the game object
80
+ */
81
+ protected destroyGameObjectByName(name: string): void;
82
+ /**
83
+ * Destroy the game objects
84
+ * @param gameObject The game object to destory
85
+ */
86
+ protected destroyGameObject(gameObject: GameObject): void;
87
+ /**
88
+ * @param name The name of the component to find
89
+ * @returns TRUE or FALSE
90
+ */
91
+ hasComponentOfName(name: string): boolean;
92
+ /**
93
+ * @param type The type of the component to find
94
+ * @returns TRUE or FALSE
95
+ */
96
+ hasComponentOfType(type: string): boolean;
97
+ /**
98
+ * @param name The name of the component to remove
99
+ */
100
+ removeComponentByName(name: string): void;
101
+ /**
102
+ * @param type The tyepe of the component to remove
103
+ */
104
+ removeComponentByType(type: string): void;
105
+ /**
106
+ * @description NOTE: Do not call this method. Use GameObject.setComponentActive instead.
107
+ */
108
+ destroy(): void;
109
+ }
110
+ export declare abstract class EngineComponent extends Component {
111
+ protected get updateEvent(): string;
112
+ }
113
+ export declare abstract class ColliderComponent extends Component {
114
+ protected get updateEvent(): string;
115
+ }
116
+ export declare abstract class PhysicsComponent extends Component {
117
+ protected get updateEvent(): string;
118
+ }
119
+ export declare abstract class TransformComponent extends Component {
120
+ protected get updateEvent(): string;
121
+ }
122
+ export declare abstract class PreRenderComponent extends Component {
123
+ protected get updateEvent(): string;
124
+ }
125
+ export declare abstract class CameraComponent extends Component {
126
+ protected get updateEvent(): string;
127
+ }
128
+ export declare abstract class RenderComponent extends Component {
129
+ protected get updateEvent(): string;
130
+ }
@@ -0,0 +1,77 @@
1
+ import { SceneConstructor as SceneFactory } from "../core/managers/SceneManager";
2
+ import { Container } from "../utils/Container";
3
+ import { Rectangle } from "../math/Rectangle";
4
+ import { Vector2 } from "../math/Vector2";
5
+ export declare const container: Container;
6
+ export interface GameConfig {
7
+ containerNode: HTMLElement | null;
8
+ gameWidth?: number;
9
+ gameHeight?: number;
10
+ debugEnabled?: boolean;
11
+ canvasColor?: string;
12
+ context2d?: Context2DConfig;
13
+ gameFrameRate?: number;
14
+ physicsFramerate?: number;
15
+ spriteDefaultScale?: Vector2 | null;
16
+ collisions?: {
17
+ method?: CollisionMethodConfig;
18
+ quadTreeBounds?: Rectangle | null;
19
+ quadMaxLevel?: number;
20
+ collidersPerQuad?: number;
21
+ };
22
+ }
23
+ export declare enum Context2DConfig {
24
+ Default = "default",
25
+ Disabled = "disabled",
26
+ Fallback = "fallback"
27
+ }
28
+ export declare enum CollisionMethodConfig {
29
+ AABB = "aabb",
30
+ SAT = "sat"
31
+ }
32
+ export declare class Game {
33
+ private sceneManager;
34
+ private renderManager;
35
+ private iterationManager;
36
+ private _config;
37
+ private _running;
38
+ private _stop;
39
+ private frameRequestId;
40
+ constructor(config: GameConfig);
41
+ private errorEventHandler;
42
+ private setupManagers;
43
+ /**
44
+ * @returns GameConfig
45
+ */
46
+ get config(): GameConfig;
47
+ /**
48
+ * @returns running
49
+ */
50
+ get running(): boolean;
51
+ /**
52
+ * Add a scene to the game
53
+ *
54
+ * @param name The name of the scene
55
+ * @param sceneFactory The factory funciton for the escene
56
+ * @param openingScene If this is the opening scene, set TRUE, FALSE instead
57
+ */
58
+ addScene(name: string, sceneFactory: SceneFactory, openingScene?: boolean): void;
59
+ /**
60
+ * Run the game
61
+ */
62
+ run(): void;
63
+ /**
64
+ * Stop the game
65
+ */
66
+ stop(): void;
67
+ private gameLoop;
68
+ /**
69
+ * Pauses the game loop
70
+ */
71
+ pauseLoop(): void;
72
+ /**
73
+ * Resumes the paused game loop
74
+ */
75
+ resumeLoop(): void;
76
+ private requestAnimationFrame;
77
+ }