angry-pixel 1.1.1 → 1.1.3

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 (56) hide show
  1. package/lib/component/Animator.d.ts +8 -4
  2. package/lib/component/AudioPlayer.d.ts +6 -4
  3. package/lib/component/Button.d.ts +42 -0
  4. package/lib/component/Camera.d.ts +1 -2
  5. package/lib/component/RigidBody.d.ts +5 -4
  6. package/lib/component/Transform.d.ts +4 -4
  7. package/lib/component/collider/BallCollider.d.ts +3 -2
  8. package/lib/component/collider/BoxCollider.d.ts +3 -2
  9. package/lib/component/collider/Collider.d.ts +6 -1
  10. package/lib/component/collider/EdgeCollider.d.ts +7 -4
  11. package/lib/component/collider/PolygonCollider.d.ts +7 -4
  12. package/lib/component/collider/TilemapCollider.d.ts +3 -2
  13. package/lib/component/rendering/MaskRenderer.d.ts +3 -2
  14. package/lib/component/rendering/SpriteRenderer.d.ts +6 -5
  15. package/lib/component/rendering/TextRenderer.d.ts +3 -2
  16. package/lib/component/rendering/tilemap/CsvTilemapRenderer.d.ts +6 -6
  17. package/lib/component/rendering/tilemap/TileData.d.ts +9 -6
  18. package/lib/component/rendering/tilemap/TiledTilemapRenderer.d.ts +10 -5
  19. package/lib/component/rendering/tilemap/TilemapRenderer.d.ts +9 -7
  20. package/lib/core/Component.d.ts +41 -86
  21. package/lib/core/Game.d.ts +14 -15
  22. package/lib/core/GameActor.d.ts +95 -0
  23. package/lib/core/GameObject.d.ts +69 -88
  24. package/lib/core/Scene.d.ts +6 -65
  25. package/lib/core/facades/GameObjectManagerFacade.d.ts +41 -25
  26. package/lib/core/facades/TimeManagerFacade.d.ts +1 -0
  27. package/lib/core/managers/AssetManager.d.ts +5 -2
  28. package/lib/core/managers/GameObjectManager.d.ts +11 -10
  29. package/lib/core/managers/HeadlessIterationManager.d.ts +29 -0
  30. package/lib/core/managers/IterationManager copy.d.ts +42 -0
  31. package/lib/core/managers/IterationManager.d.ts +19 -7
  32. package/lib/core/managers/IterationManagerOld.d.ts +42 -0
  33. package/lib/core/managers/SceneManager.d.ts +5 -4
  34. package/lib/core/managers/TimeManager.d.ts +10 -6
  35. package/lib/core/managers/headless/HeadlessIterationManager.d.ts +29 -0
  36. package/lib/core/managers/headless/HeadlessRenderManager.d.ts +10 -0
  37. package/lib/core/managers/iteration/BrowserIterationManager.d.ts +35 -0
  38. package/lib/core/managers/iteration/FrameEvent.d.ts +13 -0
  39. package/lib/core/managers/iteration/HeadlessIterationManager.d.ts +29 -0
  40. package/lib/core/managers/iteration/IIterationManager.d.ts +7 -0
  41. package/lib/gameObject/GameCamera.d.ts +2 -2
  42. package/lib/index.cjs.js +1 -1
  43. package/lib/index.d.ts +3 -1
  44. package/lib/index.esm.js +1 -1
  45. package/lib/index.js +1 -1
  46. package/lib/input/GamepadController.d.ts +16 -4
  47. package/lib/math/Rectangle.d.ts +9 -2
  48. package/lib/math/Utils.d.ts +8 -2
  49. package/lib/physics/collision/CollisionManager.d.ts +7 -3
  50. package/lib/physics/collision/resolver/AABBResolver.d.ts +2 -2
  51. package/lib/physics/collision/resolver/SatResolver.d.ts +1 -2
  52. package/lib/physics/rigodBody/RigidBodyData.d.ts +2 -1
  53. package/lib/physics/rigodBody/RigidBodyManager.d.ts +4 -1
  54. package/lib/rendering/RenderManager.d.ts +8 -1
  55. package/lib/rendering/renderData/TextRenderData.d.ts +1 -1
  56. package/package.json +1 -1
@@ -9,22 +9,32 @@ export declare class GamepadController {
9
9
  update(): void;
10
10
  private getGamepads;
11
11
  }
12
+ interface GamepadWithVibratorActuator extends Gamepad {
13
+ vibrationActuator?: {
14
+ type: string;
15
+ playEffect: (type: string, config: {
16
+ duration: number;
17
+ startDelay: number;
18
+ weakMagnitude: number;
19
+ strongMagnitude: number;
20
+ }) => Promise<string>;
21
+ };
22
+ }
12
23
  export declare class GamepadData {
13
- private _connected;
14
- private _id;
24
+ private _gamepad;
15
25
  private readonly buttons;
16
26
  private readonly axes;
17
27
  private readonly _dpadAxes;
18
28
  private readonly _leftStickAxes;
19
29
  private readonly _rightStickAxes;
20
- updateFromGamepad(gamepad: Gamepad): void;
30
+ updateFromGamepad(gamepad: GamepadWithVibratorActuator): void;
21
31
  get id(): string;
32
+ get connected(): boolean;
22
33
  getButtonPressed(index: number): boolean;
23
34
  getAxis(index: number): number;
24
35
  get dpadAxes(): Vector2;
25
36
  get leftStickAxes(): Vector2;
26
37
  get rightStickAxes(): Vector2;
27
- get connected(): boolean;
28
38
  get dpadUp(): boolean;
29
39
  get dpadDown(): boolean;
30
40
  get dpadLeft(): boolean;
@@ -45,4 +55,6 @@ export declare class GamepadData {
45
55
  get leftStickVertical(): number;
46
56
  get rightStickHorizontal(): number;
47
57
  get rightStickVertical(): number;
58
+ vibrate(duration?: number, weakMagnitude?: number, strongMagnitude?: number, startDelay?: number): void;
48
59
  }
60
+ export {};
@@ -41,10 +41,17 @@ export declare class Rectangle {
41
41
  */
42
42
  updateFromRect(rect: Rectangle): void;
43
43
  /**
44
- * Check if the rectangle is overlapping another rectangle
44
+ * Check if the target rectangle is overlapping
45
45
  *
46
46
  * @param rect The rectangle to compare
47
47
  * @returns TRUE or FALSE
48
48
  */
49
- overlappingRectangle(rect: Rectangle): boolean;
49
+ overlapRectangle(rect: Rectangle): boolean;
50
+ /**
51
+ * Check if the target vector is overlapping
52
+ *
53
+ * @param vector The target vector
54
+ * @returns TRUE or FALSE
55
+ */
56
+ overlapVector(vector: Vector2): boolean;
50
57
  }
@@ -8,9 +8,15 @@ export declare const clamp: (value: number, min: number, max: number) => number;
8
8
  /**
9
9
  * @param min min value
10
10
  * @param max max value
11
- * @returns the random value
11
+ * @returns the random int value
12
12
  */
13
- export declare const random: (min: number, max: number) => number;
13
+ export declare const randomInt: (min: number, max: number) => number;
14
+ /**
15
+ * @param min min value
16
+ * @param max max value
17
+ * @returns the random float value
18
+ */
19
+ export declare const randomFloat: (min: number, max: number, decimals?: number) => number;
14
20
  /**
15
21
  * @param value the value to round
16
22
  * @param decimals the number of decimals
@@ -7,6 +7,7 @@ export interface Collision {
7
7
  remoteCollider: ColliderData;
8
8
  resolution: CollisionResolution;
9
9
  }
10
+ export declare type CollisionMatrix = [string, string][];
10
11
  export declare class CollisionManager {
11
12
  private colliders;
12
13
  private quadTree;
@@ -14,18 +15,21 @@ export declare class CollisionManager {
14
15
  private fixedQuadTree;
15
16
  private method;
16
17
  private collisions;
18
+ private collisionMatrix;
17
19
  private minBounds;
18
20
  private maxBounds;
19
21
  private newBounds;
20
- constructor(method: CollisionMethod, quadTreeBounds: Rectangle | null, quadMaxLevel: number, collidersPerQuad: number);
22
+ constructor(method: CollisionMethod, quadMaxLevel: number, collidersPerQuad: number, quadTreeBounds?: Rectangle, collisionMatrix?: CollisionMatrix | null);
23
+ private setupQuadTree;
21
24
  addCollider(collider: ColliderData): void;
22
25
  removeCollider(collider: ColliderData): void;
23
- getFrameCollisionsForCollider(collider: ColliderData): Collision[];
24
- refreshCollisionsForCollider(collider: ColliderData): Collision[];
26
+ getCollisionsForCollider(collider: ColliderData): Collision[];
27
+ refreshCollisionsForCollider(collider: ColliderData): void;
25
28
  clear(): void;
26
29
  update(): void;
27
30
  private updateNewBounds;
28
31
  private updateCollisions;
29
32
  private broadPhase;
30
33
  private narrowPhase;
34
+ private isResolved;
31
35
  }
@@ -1,4 +1,4 @@
1
- import { Rectangle } from "../shape/Rectangle";
1
+ import { Shape } from "../shape/Shape";
2
2
  import { CollisionResolution, CollisionResolver } from "./CollisionResolver";
3
3
  export declare class AABBResolver implements CollisionResolver {
4
4
  private overlapX;
@@ -6,6 +6,6 @@ export declare class AABBResolver implements CollisionResolver {
6
6
  private minOverlap;
7
7
  private direction;
8
8
  private displacementDirection;
9
- resolve(shapeA: Rectangle, shapeB: Rectangle): CollisionResolution | null;
9
+ resolve({ boundingBox: boxA }: Shape, { boundingBox: boxB }: Shape): CollisionResolution | null;
10
10
  private preventContainment;
11
11
  }
@@ -6,8 +6,7 @@ export declare class SatResolver implements CollisionResolver {
6
6
  private projB;
7
7
  private currentOverlap;
8
8
  private minOverlap;
9
- private displaceDirection;
10
- private direction;
9
+ private displacementDirection;
11
10
  private distance;
12
11
  private cache;
13
12
  resolve(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
@@ -1,10 +1,11 @@
1
1
  import { Vector2 } from "../../math/Vector2";
2
2
  import { ColliderData } from "../collision/ColliderData";
3
+ import { RigidBodyType } from "./RigidBodyManager";
3
4
  export interface RigidBodyData {
5
+ type: RigidBodyType;
4
6
  position: Vector2;
5
7
  gravity: number;
6
8
  velocity: Vector2;
7
- layersToCollider: string[];
8
9
  colliders: ColliderData[];
9
10
  cacheVelocity?: Vector2;
10
11
  }
@@ -2,7 +2,8 @@ import { CollisionManager } from "../collision/CollisionManager";
2
2
  import { RigidBodyData } from "./RigidBodyData";
3
3
  export declare enum RigidBodyType {
4
4
  Static = 0,
5
- Dynamic = 1
5
+ Dynamic = 1,
6
+ Kinematic = 2
6
7
  }
7
8
  export declare class RigidBodyManager {
8
9
  private readonly collisionManager;
@@ -15,6 +16,8 @@ export declare class RigidBodyManager {
15
16
  addRigidBodyData(data: RigidBodyData): void;
16
17
  removeRigidBodyData(data: RigidBodyData): void;
17
18
  update(deltaTime: number): void;
19
+ private dynamicUpdate;
20
+ private kinematicUpdate;
18
21
  private applyGravity;
19
22
  private applyVelocity;
20
23
  private applyReposition;
@@ -2,7 +2,14 @@ import { ContextRenderer } from "./ContextRenderer";
2
2
  import { RenderData } from "./renderData/RenderData";
3
3
  import { CameraData } from "./CameraData";
4
4
  import { CullingService } from "./CullingService";
5
- export declare class RenderManager {
5
+ export interface IRenderManager {
6
+ clearCanvas(): void;
7
+ addRenderData(renderData: RenderData): void;
8
+ addCameraData(cameraData: CameraData): void;
9
+ render(): void;
10
+ clearData(): void;
11
+ }
12
+ export declare class RenderManager implements IRenderManager {
6
13
  private renderer;
7
14
  private cullingService;
8
15
  private canvasColor;
@@ -1,6 +1,6 @@
1
1
  import { Vector2 } from "../../math/Vector2";
2
2
  import { RenderData, RenderDataType } from "./RenderData";
3
- export declare type Orientation = "rightUp" | "rightDown" | "center";
3
+ export declare type Orientation = "rightUp" | "rightDown" | "center" | "rightCenter";
4
4
  export declare class TextRenderData extends RenderData {
5
5
  type: RenderDataType;
6
6
  color: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angry-pixel",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Lightweight 2D game engine made with TypeScript.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",