angry-pixel 1.2.6 → 1.2.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 (156) hide show
  1. package/lib/index.cjs.js +2 -1
  2. package/lib/index.cjs.js.map +1 -0
  3. package/lib/index.d.ts +5 -41
  4. package/lib/index.esm.js +2 -1
  5. package/lib/index.esm.js.map +1 -0
  6. package/lib/index.js +2 -1
  7. package/lib/index.js.map +1 -0
  8. package/package.json +6 -30
  9. package/.github/workflows/analyzeCode.yml +0 -25
  10. package/.github/workflows/buildCode.yml +0 -23
  11. package/.github/workflows/main.yml +0 -15
  12. package/.github/workflows/setupNode.yml +0 -40
  13. package/api-docs/.nojekyll +0 -1
  14. package/api-docs/assets/highlight.css +0 -92
  15. package/api-docs/assets/main.js +0 -59
  16. package/api-docs/assets/navigation.js +0 -1
  17. package/api-docs/assets/search.js +0 -1
  18. package/api-docs/assets/style.css +0 -1383
  19. package/api-docs/classes/Animator.html +0 -128
  20. package/api-docs/classes/AudioPlayer.html +0 -131
  21. package/api-docs/classes/BallCollider.html +0 -132
  22. package/api-docs/classes/BoxCollider.html +0 -136
  23. package/api-docs/classes/Button.html +0 -125
  24. package/api-docs/classes/Camera.html +0 -114
  25. package/api-docs/classes/Component.html +0 -106
  26. package/api-docs/classes/EdgeCollider.html +0 -134
  27. package/api-docs/classes/Game.html +0 -24
  28. package/api-docs/classes/GameCamera.html +0 -163
  29. package/api-docs/classes/GameObject.html +0 -149
  30. package/api-docs/classes/GamepadController.html +0 -11
  31. package/api-docs/classes/GamepadData.html +0 -81
  32. package/api-docs/classes/KeyboardController.html +0 -43
  33. package/api-docs/classes/MaskRenderer.html +0 -119
  34. package/api-docs/classes/MouseController.html +0 -14
  35. package/api-docs/classes/PhysicsComponent.html +0 -107
  36. package/api-docs/classes/PolygonCollider.html +0 -134
  37. package/api-docs/classes/PreRenderComponent.html +0 -107
  38. package/api-docs/classes/Rectangle.html +0 -30
  39. package/api-docs/classes/RigidBody.html +0 -123
  40. package/api-docs/classes/Rotation.html +0 -5
  41. package/api-docs/classes/Scene.html +0 -73
  42. package/api-docs/classes/SpacePointer.html +0 -147
  43. package/api-docs/classes/Sprite.html +0 -20
  44. package/api-docs/classes/SpriteRenderer.html +0 -134
  45. package/api-docs/classes/TextRenderer.html +0 -138
  46. package/api-docs/classes/TiledTilemapRenderer.html +0 -127
  47. package/api-docs/classes/TilemapCollider.html +0 -124
  48. package/api-docs/classes/TilemapRenderer.html +0 -126
  49. package/api-docs/classes/TouchController.html +0 -8
  50. package/api-docs/classes/Transform.html +0 -124
  51. package/api-docs/classes/Vector2.html +0 -65
  52. package/api-docs/classes/VideoRenderer.html +0 -145
  53. package/api-docs/enums/BroadPhaseMethods.html +0 -3
  54. package/api-docs/enums/ButtonType.html +0 -3
  55. package/api-docs/enums/CollisionMethods.html +0 -3
  56. package/api-docs/enums/RigidBodyType.html +0 -4
  57. package/api-docs/enums/TextOrientation.html +0 -5
  58. package/api-docs/enums/TilemapOrientation.html +0 -5
  59. package/api-docs/functions/between.html +0 -5
  60. package/api-docs/functions/clamp.html +0 -5
  61. package/api-docs/functions/fixedRound.html +0 -4
  62. package/api-docs/functions/randomFloat.html +0 -4
  63. package/api-docs/functions/randomInt.html +0 -4
  64. package/api-docs/functions/range.html +0 -5
  65. package/api-docs/index.html +0 -37
  66. package/api-docs/interfaces/AnimationConfig.html +0 -10
  67. package/api-docs/interfaces/AnimatorOptions.html +0 -6
  68. package/api-docs/interfaces/AudioPlayerOptions.html +0 -8
  69. package/api-docs/interfaces/BallColliderOptions.html +0 -16
  70. package/api-docs/interfaces/BoxColliderOptions.html +0 -20
  71. package/api-docs/interfaces/ButtonOptions.html +0 -16
  72. package/api-docs/interfaces/ColliderComponent.html +0 -14
  73. package/api-docs/interfaces/CollisionData.html +0 -10
  74. package/api-docs/interfaces/EdgeColliderOptions.html +0 -18
  75. package/api-docs/interfaces/GameConfig.html +0 -28
  76. package/api-docs/interfaces/IAssetManager.html +0 -40
  77. package/api-docs/interfaces/ICollider.html +0 -11
  78. package/api-docs/interfaces/ICollision.html +0 -4
  79. package/api-docs/interfaces/ICollisionResolution.html +0 -4
  80. package/api-docs/interfaces/IDomManager.html +0 -6
  81. package/api-docs/interfaces/IGameObjectManager.html +0 -49
  82. package/api-docs/interfaces/IInputManager.html +0 -12
  83. package/api-docs/interfaces/IPhysicsManager.html +0 -8
  84. package/api-docs/interfaces/IRenderManager.html +0 -7
  85. package/api-docs/interfaces/ISceneManager.html +0 -18
  86. package/api-docs/interfaces/ITimeManager.html +0 -16
  87. package/api-docs/interfaces/MaskRendererOptions.html +0 -18
  88. package/api-docs/interfaces/PolygonColliderOptions.html +0 -18
  89. package/api-docs/interfaces/RigidBodyOptions.html +0 -17
  90. package/api-docs/interfaces/Slice.html +0 -5
  91. package/api-docs/interfaces/SpriteConfig.html +0 -10
  92. package/api-docs/interfaces/SpriteRendererOptions.html +0 -32
  93. package/api-docs/interfaces/TextRendererOptions.html +0 -38
  94. package/api-docs/interfaces/TiledChunk.html +0 -7
  95. package/api-docs/interfaces/TiledLayer.html +0 -17
  96. package/api-docs/interfaces/TiledTilemap.html +0 -9
  97. package/api-docs/interfaces/TiledTilemapRendererOptions.html +0 -18
  98. package/api-docs/interfaces/TilemapColliderOptions.html +0 -12
  99. package/api-docs/interfaces/TilemapRendererOptions.html +0 -22
  100. package/api-docs/interfaces/Tileset.html +0 -13
  101. package/api-docs/interfaces/TouchInteraction.html +0 -6
  102. package/api-docs/interfaces/VideoRendererOptions.html +0 -34
  103. package/api-docs/modules.html +0 -85
  104. package/api-docs/types/CollisionMatrix.html +0 -1
  105. package/lib/component/Animation.d.ts +0 -12
  106. package/lib/component/Animator.d.ts +0 -139
  107. package/lib/component/AudioPlayer.d.ts +0 -97
  108. package/lib/component/Button.d.ts +0 -117
  109. package/lib/component/Camera.d.ts +0 -47
  110. package/lib/component/RigidBody.d.ts +0 -97
  111. package/lib/component/Sprite.d.ts +0 -22
  112. package/lib/component/Transform.d.ts +0 -65
  113. package/lib/component/collider/BallCollider.d.ts +0 -73
  114. package/lib/component/collider/BoxCollider.d.ts +0 -90
  115. package/lib/component/collider/Collider.d.ts +0 -82
  116. package/lib/component/collider/EdgeCollider.d.ts +0 -81
  117. package/lib/component/collider/PolygonCollider.d.ts +0 -92
  118. package/lib/component/collider/TilemapCollider.d.ts +0 -71
  119. package/lib/component/rendering/MaskRenderer.d.ts +0 -83
  120. package/lib/component/rendering/Sprite.d.ts +0 -61
  121. package/lib/component/rendering/SpriteRenderer.d.ts +0 -133
  122. package/lib/component/rendering/TextRenderer.d.ts +0 -145
  123. package/lib/component/rendering/TiledTilemapRenderer.d.ts +0 -186
  124. package/lib/component/rendering/TilemapRenderer.d.ts +0 -170
  125. package/lib/component/rendering/VideoRenderer.d.ts +0 -158
  126. package/lib/core/Component.d.ts +0 -203
  127. package/lib/core/Game.d.ts +0 -112
  128. package/lib/core/GameActor.d.ts +0 -131
  129. package/lib/core/GameConfig.d.ts +0 -61
  130. package/lib/core/GameObject.d.ts +0 -196
  131. package/lib/core/Scene.d.ts +0 -45
  132. package/lib/core/facades/AssetManagerFacade.d.ts +0 -51
  133. package/lib/core/facades/DomManagerFacade.d.ts +0 -8
  134. package/lib/core/facades/GameObjectManagerFacade.d.ts +0 -70
  135. package/lib/core/facades/InputManagerFacade.d.ts +0 -13
  136. package/lib/core/facades/SceneManagerFacade.d.ts +0 -18
  137. package/lib/core/facades/TimeManagerFacade.d.ts +0 -11
  138. package/lib/core/ioc/Config.d.ts +0 -4
  139. package/lib/core/managers/AssetManager.d.ts +0 -95
  140. package/lib/core/managers/DomManager.d.ts +0 -23
  141. package/lib/core/managers/GameObjectManager.d.ts +0 -118
  142. package/lib/core/managers/HeadlessIterationManager.d.ts +0 -33
  143. package/lib/core/managers/IterationManager.d.ts +0 -63
  144. package/lib/core/managers/SceneManager.d.ts +0 -93
  145. package/lib/core/managers/TimeManager.d.ts +0 -73
  146. package/lib/gameObject/GameCamera.d.ts +0 -38
  147. package/lib/gameObject/SpacePointer.d.ts +0 -15
  148. package/lib/input/GamepadController.d.ts +0 -225
  149. package/lib/input/InputManager.d.ts +0 -37
  150. package/lib/input/KeyboardController.d.ts +0 -81
  151. package/lib/input/MouseController.d.ts +0 -56
  152. package/lib/input/TouchController.d.ts +0 -45
  153. package/lib/utils/Container.d.ts +0 -13
  154. package/lib/utils/Exception.d.ts +0 -5
  155. package/lib/utils/UUID.d.ts +0 -1
  156. package/typedoc.json +0 -13
@@ -1,47 +0,0 @@
1
- import { CameraComponent } from "../core/Component";
2
- import { Rectangle } from "angry-pixel-math";
3
- /**
4
- * The Camera component is used to organize the rendering order by layers and to manage the general zooming of these layers.
5
- * @public
6
- * @category Components
7
- * @example
8
- * ```js
9
- * const camera = this.addComponent(Camera);
10
- * camera.zoom = 1;
11
- * camera.depth = 0;
12
- * camera.layers = ["Background", "Foreground"];
13
- * camera.addLayer("UI");
14
- * ```
15
- */
16
- export declare class Camera extends CameraComponent {
17
- /** @private */
18
- readonly allowMultiple: boolean;
19
- /**
20
- * Rectangle representing the field of view of the camera from the perspective of the screen
21
- * @readonly
22
- */
23
- readonly viewportRect: Rectangle;
24
- /**
25
- * Rectangle representing the field of view of the camera in the game world
26
- * @readonly
27
- */
28
- readonly worldSpaceRect: Rectangle;
29
- /** In case you have more than one camera, the depth value determines which camera is rendered first */
30
- depth: number;
31
- /** Layers to be rendered by this camera */
32
- layers: string[];
33
- private _zoom;
34
- private cameraData;
35
- private canvas;
36
- /** Camera zoom. Default value is 1 */
37
- set zoom(zoom: number);
38
- /** Camera zoom. Default value is 1 */
39
- get zoom(): number;
40
- /** Adds a new layer to the end of the stack */
41
- addLayer(layer: string): void;
42
- protected init(): void;
43
- protected update(): void;
44
- private updateViewportRect;
45
- private updateWorldSpaceRect;
46
- private updateCameraData;
47
- }
@@ -1,97 +0,0 @@
1
- import { EngineComponent } from "../core/Component";
2
- import { Vector2 } from "angry-pixel-math";
3
- import { InitOptions } from "../core/GameActor";
4
- import { RigidBodyType } from "angry-pixel-2d-physics";
5
- export { RigidBodyType } from "angry-pixel-2d-physics";
6
- /**
7
- * RigidBody configuration options
8
- * @public
9
- * @category Components
10
- * @example
11
- * ```js
12
- const body = this.addComponent(RigidBody, {
13
- rigidBodyType: RigidBodyType.Dynamic,
14
- gravity: 10
15
- });
16
- * ```
17
- * @example
18
- * ```js
19
- const body = this.addComponent(RigidBody, {
20
- rigidBodyType: RigidBodyType.Kinematic,
21
- });
22
- * ```
23
- * @example
24
- * ```js
25
- const body = this.addComponent(RigidBody, {
26
- rigidBodyType: RigidBodyType.Static,
27
- });
28
- * ```
29
- */
30
- export interface RigidBodyOptions extends InitOptions {
31
- /**
32
- * The type determines how it will respond to physics and collisions.
33
- - Dynamic = This type of body is affected by gravity, can be velocity-applied and collides with all types of bodies.
34
- - Kinematic = This body type is not affected by gravity but can have velocity applied to it. Dynamic bodies can collide with it.
35
- - Static = This type of body is immovable, no velocity can be applied to it and it is not affected by gravity. It is the body type that consumes the least processing resources.
36
- */
37
- rigidBodyType: RigidBodyType;
38
- /** Gravity expressed in pixels per second squared. Only applies fot Dynamic bodies */
39
- gravity?: number;
40
- }
41
- /**
42
- * The RigidBody component puts the object under simulation of the physics engine, where it will interact with other objects that have a RigidBody.
43
- * The RigidBody component requires the object to have at least one collider.
44
- *
45
- * There are three types of bodies:
46
- * - Dynamic = This type of body is affected by gravity, can be velocity-applied and collides with all types of bodies.
47
- * - Kinematic = This body type is not affected by gravity but can have velocity applied to it. Dynamic bodies can collide with it.
48
- * - Static = This type of body is immovable, no velocity can be applied to it and it is not affected by gravity. It is the body type that consumes the least processing resources.
49
- * @public
50
- * @category Components
51
- * @example
52
- * ```js
53
- const body = this.addComponent(RigidBody, {
54
- rigidBodyType: RigidBodyType.Dynamic,
55
- gravity: 10
56
- });
57
- body.velocity = 200;
58
- * ```
59
- * @example
60
- * ```js
61
- const body = this.addComponent(RigidBody, {
62
- rigidBodyType: RigidBodyType.Kinematic,
63
- });
64
- body.velocity = 200;
65
- * ```
66
- * @example
67
- * ```js
68
- const body = this.addComponent(RigidBody, {
69
- rigidBodyType: RigidBodyType.Static,
70
- });
71
- * ```
72
- */
73
- export declare class RigidBody extends EngineComponent {
74
- /** @private */
75
- readonly allowMultiple: boolean;
76
- private rigidBody;
77
- /** Velocity applied to the x-axis and y-axis expressed in pixels per second. */
78
- get velocity(): Vector2;
79
- /** Velocity applied to the x-axis and y-axis expressed in pixels per second. */
80
- set velocity(velocity: Vector2);
81
- /** Gravity expressed in pixels per second squared. Only applies fot Dynamic bodies */
82
- get gravity(): number;
83
- /** Gravity expressed in pixels per second squared. Only applies fot Dynamic bodies */
84
- set gravity(gravity: number);
85
- /**
86
- * The type determines how it will respond to physics and collisions.
87
- - Dynamic = This type of body is affected by gravity, can be velocity-applied and collides with all types of bodies.
88
- - Kinematic = This body type is not affected by gravity but can have velocity applied to it. Dynamic bodies can collide with it.
89
- - Static = This type of body is immovable, no velocity can be applied to it and it is not affected by gravity. It is the body type that consumes the least processing resources.
90
- */
91
- get rigidBodyType(): RigidBodyType;
92
- protected init({ rigidBodyType, gravity }: RigidBodyOptions): void;
93
- protected update(): void;
94
- private getColliderIds;
95
- protected onActiveChange(): void;
96
- protected onDestroy(): void;
97
- }
@@ -1,22 +0,0 @@
1
- import { Vector2 } from "angry-pixel-math";
2
- import { Slice } from "angry-pixel-2d-renderer";
3
- export { Slice };
4
- export interface SpriteConfig {
5
- image: HTMLImageElement;
6
- scale?: Vector2;
7
- slice?: Slice;
8
- smooth?: boolean;
9
- }
10
- export declare class Sprite {
11
- readonly image: HTMLImageElement;
12
- readonly slice: Slice;
13
- readonly smooth: boolean;
14
- scale?: Vector2;
15
- private _width;
16
- private _height;
17
- private _loaded;
18
- constructor(config: SpriteConfig);
19
- get width(): number;
20
- get height(): number;
21
- get loaded(): boolean;
22
- }
@@ -1,65 +0,0 @@
1
- import { TransformComponent } from "../core/Component";
2
- import { Rotation, Vector2 } from "angry-pixel-math";
3
- /**
4
- * All GameObject have a Transform natively, so it cannot be added manually.
5
- * It is used to handle the position, rotation and scale of the object. If the object has a parent,
6
- * it can be scaled, rotated and translated hierarchically.
7
- * @public
8
- * @category Components
9
- * @example
10
- * ```js
11
- * this.transform.position = new Vector2(0, 0);
12
- * this.transform.position.set(0, 0);
13
- *
14
- * this.transform.scale = new Vector2(0, 0);
15
- * this.transform.scale.set(0, 0);
16
- *
17
- * this.transform.rotation.radians = 0;
18
- * this.transform.rotation.degrees = 0;
19
- *
20
- * // used to set position relative to the parent
21
- * this.transform.innerPosition = new Vector2(0, 0);
22
- * this.transform.innerPosition.set(0, 0);
23
- * ```
24
- */
25
- export declare class Transform extends TransformComponent {
26
- /** @private */
27
- readonly allowMultiple: boolean;
28
- /** Apply scale relative to the parent. Default value is TRUE */
29
- parentScale: boolean;
30
- /** Apply rotation relative to the parent. Default value is TRUE */
31
- parentRotation: boolean;
32
- private _position;
33
- private _scale;
34
- private _rotation;
35
- private _innerPosition;
36
- private _parent;
37
- private cache;
38
- private lastParentRadians;
39
- private lastPosition;
40
- private scaledInnerPosition;
41
- /** Position on x-axis and y-axis in pixels */
42
- get position(): Vector2;
43
- /** Position on x-axis and y-axis in pixels */
44
- set position(position: Vector2);
45
- /** Scale on x-axis and y-axis in pixels */
46
- get scale(): Vector2;
47
- /** Scale on x-axis and y-axis in pixels */
48
- set scale(scale: Vector2);
49
- /** Rotation expressed in radians or degrees */
50
- get rotation(): Rotation;
51
- /** Direction vector based on the Rotation */
52
- get direction(): Vector2;
53
- /** Position vector relative to the parent */
54
- get innerPosition(): Vector2;
55
- /** Position vector relative to the parent */
56
- set innerPosition(innerPosition: Vector2);
57
- /** Parent transform */
58
- get parent(): Transform | null;
59
- /** Parent transform */
60
- set parent(parent: Transform | null);
61
- protected update(): void;
62
- private setPositionFromParent;
63
- private translateInnerPosition;
64
- private updateScaledInnerPosition;
65
- }
@@ -1,73 +0,0 @@
1
- import { BaseCollider } from "./Collider";
2
- import { InitOptions } from "../../core/GameActor";
3
- /**
4
- * BallCollider configuration options
5
- * @public
6
- * @category Components
7
- * @example
8
- * ```js
9
- * this.addComponent(BallCollider, {
10
- * radius: 32,
11
- * offsetX: 0,
12
- * offsetY: 0,
13
- * layer: "PlayerHitbox",
14
- * debug: false,
15
- * physics: true,
16
- * });
17
- * ```
18
- */
19
- export interface BallColliderOptions extends InitOptions {
20
- /** Radius in pixels */
21
- radius: number;
22
- /** x-axis offset */
23
- offsetX?: number;
24
- /** y-axis offset */
25
- offsetY?: number;
26
- /** Collision layer, if it's not setted, it uses the game object layer */
27
- layer?: string;
28
- /** TRUE if this collider interact with rigid bodies */
29
- physics?: boolean;
30
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
31
- debug?: boolean;
32
- }
33
- /**
34
- * Circumference shaped collider for 2d collisions.
35
- * @public
36
- * @category Components
37
- * @example
38
- * ```js
39
- * this.addComponent(BallCollider, {
40
- * radius: 32
41
- * });
42
- * ```
43
- * @example
44
- * ```js
45
- * this.addComponent(BallCollider, {
46
- * radius: 32,
47
- * offsetX: 0,
48
- * offsetY: 0,
49
- * layer: "PlayerHitbox",
50
- * debug: false,
51
- * physics: true,
52
- * });
53
- * ```
54
- */
55
- export declare class BallCollider extends BaseCollider {
56
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
57
- debug: boolean;
58
- /** Radius in pixels */
59
- radius: number;
60
- /** x-axis offset */
61
- offsetX: number;
62
- /** y-axis offset */
63
- offsetY: number;
64
- private realRadius;
65
- private realOffset;
66
- private realPosition;
67
- private innerPosition;
68
- protected init(config: BallColliderOptions): void;
69
- protected updateRealSize(): void;
70
- protected updatePosition(): void;
71
- private translate;
72
- protected updateColliders(): void;
73
- }
@@ -1,90 +0,0 @@
1
- import { BaseCollider } from "./Collider";
2
- import { InitOptions } from "../../core/GameActor";
3
- import { Rotation } from "angry-pixel-math";
4
- /**
5
- * BoxCollider configuration options
6
- * @public
7
- * @category Components
8
- * @example
9
- * ```js
10
- * this.addComponent(BoxCollider, {
11
- * width: 32,
12
- * height: 32,
13
- * rotation: new Rotation(0),
14
- * offsetX: 0,
15
- * offsetY: 0,
16
- * layer: "PlayerHitbox",
17
- * debug: false,
18
- * physics: true,
19
- * });
20
- * ```
21
- */
22
- export interface BoxColliderOptions extends InitOptions {
23
- /** Width of the rectangle in pixels */
24
- width: number;
25
- /** Height of the rectangle in pixels */
26
- height: number;
27
- /** x-axis offset */
28
- offsetX?: number;
29
- /** y-axis offset */
30
- offsetY?: number;
31
- /** Rectangle rotation (degrees or radians) */
32
- rotation?: Rotation;
33
- /** Collision layer, if it's not setted, it uses the game object layer */
34
- layer?: string;
35
- /** TRUE if this collider interact with rigid bodies */
36
- physics?: boolean;
37
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
38
- debug?: boolean;
39
- }
40
- /**
41
- * Rectangle shaped collider for 2d collisions.
42
- * @public
43
- * @category Components
44
- * @example
45
- * ```js
46
- * this.addComponent(BoxCollider, {
47
- * width: 32,
48
- * height: 32,
49
- * });
50
- * ```
51
- * @example
52
- * ```js
53
- * this.addComponent(BoxCollider, {
54
- * width: 32,
55
- * height: 32,
56
- * rotation: new Rotation(0),
57
- * offsetX: 0,
58
- * offsetY: 0,
59
- * layer: "PlayerHitbox",
60
- * debug: false,
61
- * physics: true,
62
- * });
63
- * ```
64
- */
65
- export declare class BoxCollider extends BaseCollider {
66
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
67
- debug: boolean;
68
- /** Width of the rectangle in pixels */
69
- width: number;
70
- /** Height of the rectangle in pixels */
71
- height: number;
72
- /** x-axis offset */
73
- offsetX: number;
74
- /** y-axis offset */
75
- offsetY: number;
76
- /** Rectangle rotation (degrees or radians) */
77
- rotation: Rotation;
78
- private realWidth;
79
- private realHeight;
80
- private realOffset;
81
- private realPosition;
82
- private realRotation;
83
- private applyRotation;
84
- private innerPosition;
85
- protected init(config: BoxColliderOptions): void;
86
- protected updateRealSize(): void;
87
- protected updatePosition(): void;
88
- private translate;
89
- protected updateColliders(): void;
90
- }
@@ -1,82 +0,0 @@
1
- import { ColliderComponent, RenderComponent } from "../../core/Component";
2
- import { GameObject } from "../../core/GameObject";
3
- import { ICollisionResolution, ICollider, ICollision } from "angry-pixel-2d-physics";
4
- /**
5
- * Information about the collision
6
- * @public
7
- * @category Components
8
- */
9
- export interface CollisionData {
10
- /** Contains information about the penetration and direction of the collision. */
11
- resolution: ICollisionResolution;
12
- /** The collider on the other side of the collision. */
13
- collider: ICollider;
14
- /** The object on the other side of the collision. */
15
- gameObject: GameObject;
16
- /**
17
- * @return The object on the other side of the collision.
18
- */
19
- getGameObject: <T extends GameObject>() => T;
20
- /** The collider belonging to the queried component */
21
- localCollider: ICollider;
22
- }
23
- /**
24
- * Every collider component implements this interface.
25
- * @public
26
- * @category Components
27
- */
28
- export interface IColliderComponent {
29
- /**
30
- * Check if the collider is in contact with any collider of the given layer.
31
- * @param layer The layer to check
32
- * @returns TRUE if is colliding, FALSE instead
33
- */
34
- collidesWithLayer(layer: string): boolean;
35
- /**
36
- * If there is a collision with the given layer, it returns information about it, or null if there is none.
37
- * @param layer The layer to check
38
- * @returns The collision data object, or NULL instead
39
- */
40
- getCollisionWithLayer(layer: string): CollisionData | null;
41
- /**
42
- * If there are collisions with the given layer, it returns information about every collision.
43
- * @param layer The layer to check
44
- * @returns The collection of collision data
45
- */
46
- getCollisionsWithLayer(layer: string): CollisionData[];
47
- }
48
- /** @private */
49
- export declare abstract class BaseCollider extends ColliderComponent implements IColliderComponent {
50
- protected renderer: RenderComponent;
51
- readonly colliders: ICollider[];
52
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
53
- layer: string;
54
- /** TRUE if this collider interact with rigid bodies */
55
- physics: boolean;
56
- private activateColliders;
57
- protected abstract updateRealSize(): void;
58
- protected abstract updatePosition(): void;
59
- protected abstract updateColliders(): void;
60
- protected update(): void;
61
- /**
62
- * Check if the collider is in contact with any collider of the given layer.
63
- * @param layer The layer to check
64
- * @returns TRUE if is colliding, FALSE instead
65
- */
66
- collidesWithLayer(layer: string): boolean;
67
- /**
68
- * If there is a collision with the given layer, it returns information about it, or null if there is none.
69
- * @param layer The layer to check
70
- * @returns The collision data object, or NULL instead
71
- */
72
- getCollisionWithLayer(layer: string): CollisionData | null;
73
- /**
74
- * If there are collisions with the given layer, it returns information about every collision.
75
- * @param layer The layer to check
76
- * @returns The collection of collision data
77
- */
78
- getCollisionsWithLayer(layer: string): CollisionData[];
79
- protected createCollisionData(collision: ICollision): CollisionData;
80
- protected onActiveChange(): void;
81
- protected onDestroy(): void;
82
- }
@@ -1,81 +0,0 @@
1
- import { BaseCollider } from "./Collider";
2
- import { InitOptions } from "../../core/GameActor";
3
- import { Vector2, Rotation } from "angry-pixel-math";
4
- /**
5
- * EdgeCollider configuration options
6
- * @public
7
- * @category Components
8
- * @example
9
- * ```js
10
- * this.addComponent(EdgeCollider, {
11
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32)],
12
- * rotation: new Rotation(0),
13
- * offsetX: 0,
14
- * offsetY: 0,
15
- * layer: "Hills",
16
- * debug: false,
17
- * physics: true,
18
- * });
19
- * ```
20
- */
21
- export interface EdgeColliderOptions extends InitOptions {
22
- /** Collection of 2d vectors representing the vertices of the collider */
23
- vertexModel: Vector2[];
24
- /** x-axis offset */
25
- offsetX?: number;
26
- /** y-axis offset */
27
- offsetY?: number;
28
- /** Edges rotation (degrees or radians) */
29
- rotation?: Rotation;
30
- /** Collision layer, if it's not setted, it uses the game object layer */
31
- layer?: string;
32
- /** TRUE if this collider interact with rigid bodies */
33
- physics?: boolean;
34
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
35
- debug?: boolean;
36
- }
37
- /**
38
- * Collider composed of lines defined by its vertices, for 2d collisions.
39
- * @public
40
- * @category Components
41
- * @example
42
- * ```js
43
- * this.addComponent(EdgeCollider, {
44
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32)],
45
- * });
46
- * ```
47
- * @example
48
- * ```js
49
- * this.addComponent(EdgeCollider, {
50
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32)],
51
- * rotation: new Rotation(0),
52
- * offsetX: 0,
53
- * offsetY: 0,
54
- * layer: "Hills",
55
- * debug: false,
56
- * physics: true,
57
- * });
58
- * ```
59
- */
60
- export declare class EdgeCollider extends BaseCollider {
61
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
62
- debug: boolean;
63
- /** Collection of 2d vectors representing the vertices of the collider */
64
- vertexModel: Vector2[];
65
- /** x-axis offset */
66
- offsetX: number;
67
- /** y-axis offset */
68
- offsetY: number;
69
- /** Rectangle rotation (degrees or radians) */
70
- rotation: Rotation;
71
- private scaledVertexModel;
72
- private scaledOffset;
73
- private scaledPosition;
74
- private finalRotation;
75
- private innerPosition;
76
- protected init(config: EdgeColliderOptions): void;
77
- protected updateRealSize(): void;
78
- protected updatePosition(): void;
79
- private translate;
80
- protected updateColliders(): void;
81
- }
@@ -1,92 +0,0 @@
1
- import { BaseCollider } from "./Collider";
2
- import { RenderComponent } from "../../core/Component";
3
- import { InitOptions } from "../../core/GameActor";
4
- import { Vector2, Rotation } from "angry-pixel-math";
5
- import { ICollider } from "angry-pixel-2d-physics";
6
- /**
7
- * PolygonCollider configuration options
8
- * @public
9
- * @category Components
10
- * @example
11
- * ```js
12
- * this.addComponent(PolygonCollider, {
13
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32), new Vector2(64, 0)],
14
- * rotation: new Rotation(0),
15
- * offsetX: 0,
16
- * offsetY: 0,
17
- * layer: "Hills",
18
- * debug: false,
19
- * physics: true,
20
- * });
21
- * ```
22
- */
23
- export interface PolygonColliderOptions extends InitOptions {
24
- /** Collection of 2d vectors representing the vertices of the collider */
25
- vertexModel: Vector2[];
26
- /** x-axis offset */
27
- offsetX?: number;
28
- /** y-axis offset */
29
- offsetY?: number;
30
- /** Edges rotation (degrees or radians) */
31
- rotation?: Rotation;
32
- /** Collision layer, if it's not setted, it uses the game object layer */
33
- layer?: string;
34
- /** TRUE if this collider interact with rigid bodies */
35
- physics?: boolean;
36
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
37
- debug?: boolean;
38
- }
39
- /**
40
- * Polygon shaped Collider for 2d collisions. Only convex polygons are allowed.
41
- * @public
42
- * @category Components
43
- * @example
44
- * ```js
45
- * this.addComponent(PolygonCollider, {
46
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32), new Vector2(64, 0)],
47
- * });
48
- * ```
49
- * @example
50
- * ```js
51
- * this.addComponent(PolygonCollider, {
52
- * vertexModel: [new Vector2(0,0), new Vector2(32, 32), new Vector2(64, 0)],
53
- * rotation: new Rotation(0),
54
- * offsetX: 0,
55
- * offsetY: 0,
56
- * layer: "Hills",
57
- * debug: false,
58
- * physics: true,
59
- * });
60
- * ```
61
- */
62
- export declare class PolygonCollider extends BaseCollider {
63
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
64
- debug: boolean;
65
- /** Collection of 2d vectors representing the vertices of the collider */
66
- vertexModel: Vector2[];
67
- /** x-axis offset */
68
- offsetX: number;
69
- /** y-axis offset */
70
- offsetY: number;
71
- /** Rectangle rotation (degrees or radians) */
72
- rotation: Rotation;
73
- private scaledVertexModel;
74
- private scaledOffset;
75
- private scaledPosition;
76
- private finalRotation;
77
- private innerPosition;
78
- protected init(config: PolygonColliderOptions): void;
79
- protected updateRealSize(): void;
80
- protected updatePosition(): void;
81
- private translate;
82
- protected updateColliders(): void;
83
- }
84
- /** @private */
85
- export declare class PolygonColliderRenderer extends RenderComponent {
86
- private renderData;
87
- private collider;
88
- protected init({ collider }: {
89
- collider: ICollider;
90
- }): void;
91
- protected update(): void;
92
- }