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,48 @@
1
+ import { Vector2 } from "..";
2
+ export declare class GamepadController {
3
+ private readonly gamepads;
4
+ constructor();
5
+ getGamepad(index: number): GamepadData;
6
+ private eventHandler;
7
+ private gamepadConnected;
8
+ private gamepadDisconected;
9
+ update(): void;
10
+ private getGamepads;
11
+ }
12
+ export declare class GamepadData {
13
+ private _connected;
14
+ private _id;
15
+ private readonly buttons;
16
+ private readonly axes;
17
+ private readonly _dpadAxes;
18
+ private readonly _leftStickAxes;
19
+ private readonly _rightStickAxes;
20
+ updateFromGamepad(gamepad: Gamepad): void;
21
+ get id(): string;
22
+ getButtonPressed(index: number): boolean;
23
+ getAxis(index: number): number;
24
+ get dpadAxes(): Vector2;
25
+ get leftStickAxes(): Vector2;
26
+ get rightStickAxes(): Vector2;
27
+ get connected(): boolean;
28
+ get dpadUp(): boolean;
29
+ get dpadDown(): boolean;
30
+ get dpadLeft(): boolean;
31
+ get dpadRight(): boolean;
32
+ get bottomFace(): boolean;
33
+ get rightFace(): boolean;
34
+ get leftFace(): boolean;
35
+ get topFace(): boolean;
36
+ get leftShoulder(): boolean;
37
+ get rightShoulder(): boolean;
38
+ get leftTrigger(): boolean;
39
+ get rightTrigger(): boolean;
40
+ get back(): boolean;
41
+ get start(): boolean;
42
+ get leftStickButton(): boolean;
43
+ get rightStickButton(): boolean;
44
+ get leftStickHorizontal(): number;
45
+ get leftStickVertical(): number;
46
+ get rightStickHorizontal(): number;
47
+ get rightStickVertical(): number;
48
+ }
@@ -0,0 +1,12 @@
1
+ import { MouseController } from "./MouseController";
2
+ import { KeyboardController } from "./KeyboardController";
3
+ import { GamepadController } from "./GamepadController";
4
+ import { TouchController } from "./TouchController";
5
+ export declare class InputManager {
6
+ mouse: MouseController;
7
+ keyboard: KeyboardController;
8
+ gamepad: GamepadController;
9
+ touch: TouchController;
10
+ constructor(mouse: MouseController, keyboard: KeyboardController, gamepad: GamepadController, touch: TouchController);
11
+ update(): void;
12
+ }
@@ -0,0 +1,12 @@
1
+ export declare class KeyboardController {
2
+ private canvas;
3
+ private keyPresses;
4
+ constructor(canvas: HTMLCanvasElement);
5
+ private eventHandler;
6
+ isPressed(keyCode: string): boolean;
7
+ orPressed(keyCodes: string[]): boolean;
8
+ andPressed(keyCodes: string[]): boolean;
9
+ isPressedReturn<T>(keyCode: string, returnTrue: T, returnFalse: T): T;
10
+ orPressedReturn<T>(keyCodes: string[], returnTrue: T, returnFalse: T): T;
11
+ andPressedReturn<T>(keyCodes: string[], returnTrue: T, returnFalse: T): T;
12
+ }
@@ -0,0 +1,21 @@
1
+ import { Vector2 } from "../math/Vector2";
2
+ export declare class MouseController {
3
+ private _leftButtonPressed;
4
+ private _scrollButtonPressed;
5
+ private _rightButtonPressed;
6
+ private _positionInViewport;
7
+ private _hasMoved;
8
+ private lastPositionInViewport;
9
+ private canvas;
10
+ constructor(canvas: HTMLCanvasElement);
11
+ get leftButtonPressed(): boolean;
12
+ get scrollButtonPressed(): boolean;
13
+ get rightButtonPressed(): boolean;
14
+ get positionInViewport(): Vector2;
15
+ get hasMoved(): boolean;
16
+ update(): void;
17
+ private setup;
18
+ private updateButtonDown;
19
+ private updateButtonUp;
20
+ private updatePosition;
21
+ }
@@ -0,0 +1,13 @@
1
+ import { Vector2 } from "../math/Vector2";
2
+ export declare class TouchController {
3
+ private canvas;
4
+ private _touching;
5
+ private _positionInViewport;
6
+ private _radius;
7
+ constructor(canvas: HTMLCanvasElement);
8
+ get positionInViewport(): Vector2;
9
+ get touching(): boolean;
10
+ get radius(): Vector2;
11
+ private eventHandler;
12
+ private updatePosition;
13
+ }
@@ -0,0 +1,50 @@
1
+ import { Vector2 } from "./Vector2";
2
+ export declare class Rectangle {
3
+ private _position;
4
+ private _center;
5
+ private _width;
6
+ private _height;
7
+ constructor(x: number, y: number, width: number, height: number);
8
+ get x(): number;
9
+ set x(value: number);
10
+ get y(): number;
11
+ set y(value: number);
12
+ get x1(): number;
13
+ get y1(): number;
14
+ get position(): Vector2;
15
+ set position(position: Vector2);
16
+ get width(): number;
17
+ set width(width: number);
18
+ get height(): number;
19
+ set height(height: number);
20
+ get center(): Vector2;
21
+ /**
22
+ * Set the rectangle
23
+ *
24
+ * @param x
25
+ * @param y
26
+ * @param width
27
+ * @param height
28
+ */
29
+ set(x: number, y: number, width: number, height: number): void;
30
+ /**
31
+ * Compare if two rectangles are equals
32
+ *
33
+ * @param vector The rectangle to compare
34
+ * @returns True if the rectangles are equals, false if not
35
+ */
36
+ equals(rectangle: Rectangle): boolean;
37
+ /**
38
+ * Set the rectangle properties from another rectangle
39
+ *
40
+ * @param rect The rectangleto to update from
41
+ */
42
+ updateFromRect(rect: Rectangle): void;
43
+ /**
44
+ * Check if the rectangle is overlapping another rectangle
45
+ *
46
+ * @param rect The rectangle to compare
47
+ * @returns TRUE or FALSE
48
+ */
49
+ overlappingRectangle(rect: Rectangle): boolean;
50
+ }
@@ -0,0 +1,16 @@
1
+ import { Vector2 } from "./Vector2";
2
+ export declare class Rotation {
3
+ private _degrees;
4
+ private _radians;
5
+ private _direction;
6
+ constructor(config?: {
7
+ radians?: number;
8
+ degrees?: number;
9
+ });
10
+ set degrees(degrees: number);
11
+ get degrees(): number;
12
+ set radians(radians: number);
13
+ get radians(): number;
14
+ get direction(): Vector2;
15
+ private updateDirection;
16
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @param value number to clamp
3
+ * @param min min value
4
+ * @param max max value
5
+ * @returns clamped value
6
+ */
7
+ export declare const clamp: (value: number, min: number, max: number) => number;
8
+ /**
9
+ * @param min min value
10
+ * @param max max value
11
+ * @returns the random value
12
+ */
13
+ export declare const random: (min: number, max: number) => number;
14
+ /**
15
+ * @param value the value to round
16
+ * @param decimals the number of decimals
17
+ * @returns the rounded value
18
+ */
19
+ export declare const fixedRound: (value: number, decimals: number) => number;
20
+ /**
21
+ * @param start the starting value
22
+ * @param end the end value
23
+ * @param steps the steps to move
24
+ * @returns number range
25
+ */
26
+ export declare const range: (start: number, end: number, steps?: number) => number[];
27
+ /**
28
+ * @param value number to compare
29
+ * @param min min value
30
+ * @param max max value
31
+ * @returns true if the number is between the min and the max, false instead
32
+ */
33
+ export declare const between: (value: number, min: number, max: number) => boolean;
@@ -0,0 +1,114 @@
1
+ export declare class Vector2 {
2
+ private _x;
3
+ private _y;
4
+ constructor(x?: number, y?: number);
5
+ get x(): number;
6
+ set x(x: number);
7
+ get y(): number;
8
+ set y(y: number);
9
+ /**
10
+ * Get the magnitude of the vector
11
+ *
12
+ * @returns The magnitude of the vector
13
+ */
14
+ get magnitude(): number;
15
+ /**
16
+ * Set the vector
17
+ *
18
+ * @param x
19
+ * @param y
20
+ */
21
+ set(x: number, y: number): void;
22
+ /**
23
+ * Copy the target vector properties
24
+ *
25
+ * @param vector
26
+ */
27
+ copy(vector: Vector2): void;
28
+ /**
29
+ * Compare if two vector are equals
30
+ *
31
+ * @param vector The vector to compare
32
+ * @returns True if the vectors are equals, false if not
33
+ */
34
+ equals(vector: Vector2): boolean;
35
+ /**
36
+ * Colne a vector into a new instace
37
+ *
38
+ * @returns The cloned vector
39
+ */
40
+ clone(): Vector2;
41
+ /**
42
+ * Get the distance with another vector
43
+ *
44
+ * @param vector The vector to compare
45
+ * @returns The magnitude of the distance
46
+ */
47
+ distance(vector: Vector2): number;
48
+ /**
49
+ * Calculates a + b
50
+ *
51
+ * @param out The output vector
52
+ * @param a The first operand
53
+ * @param b The second operand
54
+ * @returns The output vector
55
+ */
56
+ static add(out: Vector2, a: Vector2, b: Vector2): Vector2;
57
+ /**
58
+ * Calculates a - b
59
+ *
60
+ * @param out The output vector
61
+ * @param a The first operand
62
+ * @param b The second operand
63
+ * @returns The output vector
64
+ */
65
+ static subtract(out: Vector2, a: Vector2, b: Vector2): Vector2;
66
+ /**
67
+ * Returns the unit vector
68
+ *
69
+ * @param out The output vector
70
+ * @param a The vector to get the unit
71
+ * @returns The output vector
72
+ */
73
+ static unit(out: Vector2, a: Vector2): Vector2;
74
+ /**
75
+ * Normalize a vector
76
+ *
77
+ * @param out The output vector
78
+ * @param a The vector to normalize
79
+ * @returns The output vector
80
+ */
81
+ static normal(out: Vector2, a: Vector2): Vector2;
82
+ /**
83
+ * Scale a vector
84
+ *
85
+ * @param out The output vector
86
+ * @param a The vector to scale
87
+ * @param scalar The scalar value
88
+ * @returns The output vector
89
+ */
90
+ static scale(out: Vector2, a: Vector2, scalar: number): Vector2;
91
+ /**
92
+ * Calculates the dot product of two vectors and returns a scalar value
93
+ *
94
+ * @param a The first operand
95
+ * @param b The second operand
96
+ * @returns The dot product result
97
+ */
98
+ static dot(a: Vector2, b: Vector2): number;
99
+ /**
100
+ * Calculates the cross product of two vectors and returns a scalar value
101
+ *
102
+ * @param a The first operand
103
+ * @param b The second operand
104
+ * @returns The cross produc result
105
+ */
106
+ static cross(a: Vector2, b: Vector2): number;
107
+ /**
108
+ * Rounds a vector
109
+ *
110
+ * @param a The vector to round
111
+ * @returns The output vector
112
+ */
113
+ static round(out: Vector2, a: Vector2): Vector2;
114
+ }
@@ -0,0 +1,8 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ export declare class CollisionData {
3
+ private _penetration;
4
+ private _displacementDirection;
5
+ constructor(penetration: number, displacementDirection: Vector2);
6
+ get penetration(): number;
7
+ get displacementDirection(): Vector2;
8
+ }
@@ -0,0 +1,27 @@
1
+ import { Rectangle } from "../../math/Rectangle";
2
+ import { ICollider } from "./collider/ICollider";
3
+ import { CollisionData } from "./CollisionData";
4
+ import { ICollisionResolver } from "./resolver/ICollisionResolver";
5
+ export interface Collision {
6
+ localCollider: ICollider;
7
+ remoteCollider: ICollider;
8
+ collisionData: CollisionData;
9
+ }
10
+ export declare class CollisionManager {
11
+ private colliders;
12
+ private quadTree;
13
+ private bounds;
14
+ private fixedQuadTree;
15
+ private resolver;
16
+ private minBounds;
17
+ private maxBounds;
18
+ private newBounds;
19
+ constructor(resolver: ICollisionResolver, quadTreeBounds: Rectangle | null, quadMaxLevel: number, collidersPerQuad: number);
20
+ addCollider(collider: ICollider): void;
21
+ removeCollider(collider: ICollider): void;
22
+ getCollisionsForCollider(collider: ICollider): Collision[];
23
+ private broadPhase;
24
+ private narrowPhase;
25
+ update(): void;
26
+ private updateNewBounds;
27
+ }
@@ -0,0 +1,32 @@
1
+ import { Rectangle } from "../../math/Rectangle";
2
+ import { ICollider } from "./collider/ICollider";
3
+ export declare const DEFAULT_MAX_COLLIDERS: number;
4
+ export declare const DEFAULT_MAX_LEVELS: number;
5
+ export declare class QuadTree {
6
+ private _bounds;
7
+ private _quadrants;
8
+ private readonly maxLevels;
9
+ private readonly maxColliders;
10
+ private readonly level;
11
+ private colliders;
12
+ private readonly sw;
13
+ private readonly se;
14
+ private readonly nw;
15
+ private readonly ne;
16
+ private center;
17
+ private childrenWidth;
18
+ private childrenHeight;
19
+ private quadrantsForCollider;
20
+ constructor(level: number, bounds: Rectangle, maxLevels?: number, maxColliders?: number);
21
+ get bounds(): Rectangle;
22
+ get quadrants(): QuadTree[];
23
+ updateBounds(bounds: Rectangle): void;
24
+ clearColliders(): void;
25
+ clearQuadrants(): void;
26
+ addCollider(collider: ICollider): void;
27
+ retrieve(collider: ICollider): ICollider[];
28
+ private splitQuad;
29
+ private getChildrenQuadrantForCollider;
30
+ private insertColliderIntoChildrenQuads;
31
+ private updateCache;
32
+ }
@@ -0,0 +1,13 @@
1
+ import { GameObject } from "../../../core/GameObject";
2
+ import { Vector2 } from "../../../math/Vector2";
3
+ import { Shape } from "../shape/Shape";
4
+ export interface ICollider {
5
+ position: Vector2;
6
+ readonly shape: Shape;
7
+ readonly gameObject: GameObject;
8
+ readonly physics: boolean;
9
+ readonly bottomLeftQuadVertex: Vector2;
10
+ readonly bottomRightQuadVertex: Vector2;
11
+ readonly topLeftQuadVertex: Vector2;
12
+ readonly topRightQuadVertex: Vector2;
13
+ }
@@ -0,0 +1,31 @@
1
+ import { GameObject } from "../../../core/GameObject";
2
+ import { Vector2 } from "../../../math/Vector2";
3
+ import { Rectangle } from "../shape/Rectangle";
4
+ import { ICollider } from "./ICollider";
5
+ export declare class RectangleCollider implements ICollider {
6
+ readonly gameObject: GameObject;
7
+ readonly shape: Rectangle;
8
+ readonly physics: boolean;
9
+ private _position;
10
+ private _width;
11
+ private _height;
12
+ private _angle;
13
+ private _quadVertices;
14
+ private _quadMaxBounds;
15
+ private _quadMinBounds;
16
+ constructor(position: Vector2, width: number, height: number, physics: boolean, gameObject: GameObject, angle?: number);
17
+ set position(coordinates: Vector2);
18
+ get position(): Vector2;
19
+ set width(width: number);
20
+ get width(): number;
21
+ set height(height: number);
22
+ get height(): number;
23
+ get angle(): number;
24
+ set angle(angle: number);
25
+ get bottomLeftQuadVertex(): Vector2;
26
+ get bottomRightQuadVertex(): Vector2;
27
+ get topLeftQuadVertex(): Vector2;
28
+ get topRightQuadVertex(): Vector2;
29
+ private updateShape;
30
+ private updateQuadVertices;
31
+ }
@@ -0,0 +1,14 @@
1
+ import { CollisionData } from "../CollisionData";
2
+ import { Shape } from "../shape/Shape";
3
+ import { ICollisionResolver } from "./ICollisionResolver";
4
+ export declare class AABBResolver implements ICollisionResolver {
5
+ private shape1Rect;
6
+ private shape2Rect;
7
+ private overlapX;
8
+ private overlapY;
9
+ private minOverlap;
10
+ private displaceDirection;
11
+ getCollisionData(shape1: Shape, shape2: Shape): CollisionData | null;
12
+ private setShapeRect;
13
+ private preventContainment;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { CollisionData } from "../CollisionData";
2
+ import { Shape } from "../shape/Shape";
3
+ export interface ICollisionResolver {
4
+ getCollisionData(shape1: Shape, shape2: Shape): CollisionData | null;
5
+ }
@@ -0,0 +1,14 @@
1
+ import { Shape } from "../shape/Shape";
2
+ import { CollisionData } from "../CollisionData";
3
+ import { ICollisionResolver } from "./ICollisionResolver";
4
+ export declare class SatResolver implements ICollisionResolver {
5
+ private axes;
6
+ private proj1;
7
+ private proj2;
8
+ private currentOverlap;
9
+ private minOverlap;
10
+ private displaceDirection;
11
+ getCollisionData(shape1: Shape, shape2: Shape): CollisionData | null;
12
+ private projectShapeOntoAxis;
13
+ private preventContainment;
14
+ }
@@ -0,0 +1,13 @@
1
+ import { Vector2 } from "../../../math/Vector2";
2
+ import { Shape } from "./Shape";
3
+ export declare class Rectangle extends Shape {
4
+ private cacheVector;
5
+ private axes;
6
+ constructor(position: Vector2, width: number, height: number, angle?: number);
7
+ update(): void;
8
+ private updateModel;
9
+ private updateDirection;
10
+ private updateAxes;
11
+ clone(): Rectangle;
12
+ getAxes(): Vector2[];
13
+ }
@@ -0,0 +1,28 @@
1
+ import { Vector2 } from "../../../math/Vector2";
2
+ export declare enum ShapeType {
3
+ Rectangle = 0
4
+ }
5
+ export declare abstract class Shape {
6
+ protected _type: ShapeType;
7
+ protected _model: Vector2[];
8
+ protected _vertices: Vector2[];
9
+ protected _position: Vector2;
10
+ protected _direction: Vector2;
11
+ protected _height: number;
12
+ protected _width: number;
13
+ protected _angle: number;
14
+ get type(): ShapeType;
15
+ get position(): Vector2;
16
+ set position(position: Vector2);
17
+ get angle(): number;
18
+ set angle(angle: number);
19
+ get width(): number;
20
+ set width(width: number);
21
+ get height(): number;
22
+ set height(height: number);
23
+ get direction(): Vector2;
24
+ get vertices(): Vector2[];
25
+ abstract update(): void;
26
+ abstract clone(): Shape;
27
+ abstract getAxes(): Vector2[];
28
+ }
@@ -0,0 +1,9 @@
1
+ import { Rectangle } from "../math/Rectangle";
2
+ export declare class CameraData {
3
+ depth: number;
4
+ layers: string[];
5
+ originalViewportRect: Rectangle;
6
+ viewportRect: Rectangle;
7
+ worldSpaceRect: Rectangle;
8
+ zoom: number;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { CameraData } from "./CameraData";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ export interface ContextRenderer {
4
+ render(camera: CameraData, renderData: RenderData): void;
5
+ clearCanvas(color: string | null): void;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { CameraData } from "./CameraData";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ export declare class CullingService {
4
+ applyCulling(camera: CameraData, renderDataCollection: RenderData[]): RenderData[];
5
+ private cullSprite;
6
+ private cullTilemap;
7
+ private cullCollider;
8
+ private cullGeometric;
9
+ private cullText;
10
+ private isTargetVisible;
11
+ }
@@ -0,0 +1,24 @@
1
+ export declare class FontAtlasFactory {
2
+ private bitmapSize;
3
+ private chars;
4
+ private fontAtlas;
5
+ private loading;
6
+ hasFontAtlas(fontFamily: string): boolean;
7
+ loadingFontAtlas(fontFamily: string): boolean;
8
+ getFontAtlas(fontFamily: string): FontAtlas;
9
+ asyncCreate(charRanges: number[], fontFamily: string, fontUrl?: string, bitmapSize?: number): void;
10
+ private loadFont;
11
+ private renderAtlas;
12
+ }
13
+ export declare class FontAtlas {
14
+ readonly name: string;
15
+ readonly canvas: HTMLCanvasElement;
16
+ readonly glyphsData: Map<string, GlyphData>;
17
+ constructor(name: string);
18
+ }
19
+ export interface GlyphData {
20
+ x: number;
21
+ y: number;
22
+ width: number;
23
+ height: number;
24
+ }
@@ -0,0 +1,22 @@
1
+ import { ContextRenderer } from "./ContextRenderer";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ import { CameraData } from "./CameraData";
4
+ import { CullingService } from "./CullingService";
5
+ export declare class RenderManager {
6
+ private renderer;
7
+ private cullingService;
8
+ private canvasColor;
9
+ private debug;
10
+ private renderData;
11
+ private cameraData;
12
+ constructor(gameRenderer: ContextRenderer, cullingService: CullingService, canvasColor: string, debug?: boolean);
13
+ clearCanvas(): void;
14
+ addRenderData(renderData: RenderData): void;
15
+ addCameraData(cameraData: CameraData): void;
16
+ render(): void;
17
+ clearData(): void;
18
+ private renderByCamera;
19
+ private orderRendeData;
20
+ private updateFromCameraViewport;
21
+ private setPositionInViewport;
22
+ }
@@ -0,0 +1,19 @@
1
+ import { CameraData } from "../CameraData";
2
+ import { ContextRenderer } from "../ContextRenderer";
3
+ import { RenderData } from "../renderData/RenderData";
4
+ export declare class Context2DRenderer implements ContextRenderer {
5
+ private canvas;
6
+ private canvasContext;
7
+ private imagePosition;
8
+ constructor(canvas: HTMLCanvasElement);
9
+ clearCanvas(color?: string | null): void;
10
+ render(camera: CameraData, renderData: RenderData): void;
11
+ private renderImage;
12
+ private renderTilemap;
13
+ private renderText;
14
+ private renderGeometric;
15
+ private renderCollider;
16
+ private applyZoom;
17
+ private updateRenderPosition;
18
+ private centerImage;
19
+ }
@@ -0,0 +1,7 @@
1
+ import { Shape } from "../../physics/collision/shape/Shape";
2
+ import { RenderData, RenderDataType } from "./RenderData";
3
+ export declare class ColliderRenderData extends RenderData {
4
+ type: RenderDataType;
5
+ color: string;
6
+ shape: Shape;
7
+ }
@@ -0,0 +1,12 @@
1
+ import { Rectangle } from "../../math/Rectangle";
2
+ import { RenderData, RenderDataType } from "./RenderData";
3
+ declare type Geometric = Rectangle;
4
+ declare type GeometricType = "Rectangle";
5
+ export declare class GeometricRenderData extends RenderData {
6
+ type: RenderDataType;
7
+ color: string;
8
+ geometricType: GeometricType;
9
+ geometric: Geometric;
10
+ getGeometric<T extends Geometric>(): T;
11
+ }
12
+ export {};
@@ -0,0 +1,22 @@
1
+ import { RenderData, RenderDataType } from "./RenderData";
2
+ export interface Slice {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export declare class ImageRenderData extends RenderData {
9
+ type: RenderDataType;
10
+ image: HTMLImageElement;
11
+ width: number;
12
+ height: number;
13
+ slice: Slice;
14
+ flipHorizontal: boolean;
15
+ flipVertical: boolean;
16
+ rotation: number;
17
+ smooth: boolean;
18
+ alpha: number;
19
+ maskColor: string;
20
+ maskColorMix: number;
21
+ tintColor: string;
22
+ }