angry-pixel 1.0.9 → 1.1.2

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 (90) hide show
  1. package/lib/component/Animator.d.ts +4 -3
  2. package/lib/component/AudioPlayer.d.ts +6 -7
  3. package/lib/component/Camera.d.ts +1 -2
  4. package/lib/component/ComponentTypes.d.ts +3 -0
  5. package/lib/component/RigidBody.d.ts +12 -28
  6. package/lib/component/RigidBodyOld.d.ts +39 -0
  7. package/lib/component/Transform.d.ts +4 -5
  8. package/lib/component/collider/BallCollider.d.ts +27 -0
  9. package/lib/component/collider/BoxCollider.d.ts +35 -0
  10. package/lib/component/collider/Collider.d.ts +27 -0
  11. package/lib/component/collider/EdgeCollider.d.ts +34 -0
  12. package/lib/component/collider/PolygonCollider.d.ts +34 -0
  13. package/lib/component/collider/TilemapCollider.d.ts +17 -0
  14. package/lib/component/colliderComponent/PolygonCollider.d.ts +32 -0
  15. package/lib/component/colliderComponent/TriangleCollider.d.ts +32 -0
  16. package/lib/component/rendering/MaskRenderer.d.ts +30 -0
  17. package/lib/component/rendering/SpriteRenderer.d.ts +47 -0
  18. package/lib/component/rendering/TextRenderer.d.ts +50 -0
  19. package/lib/component/rendering/tilemap/CsvTilemapRenderer.d.ts +13 -0
  20. package/lib/component/rendering/tilemap/Tile.d.ts +7 -0
  21. package/lib/component/rendering/tilemap/TileData.d.ts +10 -0
  22. package/lib/component/rendering/tilemap/TiledTilemapRenderer.d.ts +48 -0
  23. package/lib/component/rendering/tilemap/TilemapRenderer.d.ts +74 -0
  24. package/lib/component/rendering/tilemap/Tileset.d.ts +25 -0
  25. package/lib/core/Component.d.ts +43 -88
  26. package/lib/core/Game.d.ts +10 -22
  27. package/lib/core/GameActor.d.ts +66 -0
  28. package/lib/core/GameObject.d.ts +57 -105
  29. package/lib/core/Scene.d.ts +6 -63
  30. package/lib/core/facades/GameObjectManagerFacade.d.ts +35 -25
  31. package/lib/core/facades/TimeManagerFacade.d.ts +1 -0
  32. package/lib/core/managers/GameObjectManager.d.ts +12 -11
  33. package/lib/core/managers/IterationManager copy.d.ts +42 -0
  34. package/lib/core/managers/IterationManager.d.ts +34 -16
  35. package/lib/core/managers/IterationManagerOld.d.ts +42 -0
  36. package/lib/core/managers/SceneManager.d.ts +5 -2
  37. package/lib/core/managers/TimeManager.d.ts +14 -8
  38. package/lib/gameObject/GameCamera.d.ts +2 -2
  39. package/lib/index.cjs.js +1 -1
  40. package/lib/index.d.ts +16 -13
  41. package/lib/index.esm.js +1 -1
  42. package/lib/index.js +1 -1
  43. package/lib/input/GamepadController.d.ts +17 -5
  44. package/lib/math/Rotation.d.ts +1 -4
  45. package/lib/math/Utils.d.ts +8 -2
  46. package/lib/physics/PhysicsManager.d.ts +24 -0
  47. package/lib/physics/PhysicsManagerOld2.d.ts +34 -0
  48. package/lib/physics/collision/ColliderData.d.ts +15 -0
  49. package/lib/physics/collision/CollisionManager.d.ts +21 -13
  50. package/lib/physics/collision/CollisionManagerOld.d.ts +27 -0
  51. package/lib/physics/collision/QuadTree.d.ts +16 -11
  52. package/lib/physics/collision/method/AABBMethod.d.ts +13 -0
  53. package/lib/physics/collision/method/CollisionMethod.d.ts +5 -0
  54. package/lib/physics/collision/method/SatMethod.d.ts +11 -0
  55. package/lib/physics/collision/resolver/AABBResolver.d.ts +5 -8
  56. package/lib/physics/collision/resolver/CircumferenceAABBResolver.d.ts +9 -0
  57. package/lib/physics/collision/resolver/CircumferenceCircumferenceResolver.d.ts +7 -0
  58. package/lib/physics/collision/resolver/CircumferencePolygonResolver.d.ts +23 -0
  59. package/lib/physics/collision/resolver/CircumferenceRectangleResolver.d.ts +9 -0
  60. package/lib/physics/collision/resolver/CircumferenceResolver.d.ts +7 -0
  61. package/lib/physics/collision/resolver/CollisionResolution.d.ts +6 -0
  62. package/lib/physics/collision/resolver/CollisionResolver.d.ts +10 -0
  63. package/lib/physics/collision/resolver/PolygonPolygonResolver.d.ts +15 -0
  64. package/lib/physics/collision/resolver/RectangleRectangleResolver.d.ts +11 -0
  65. package/lib/physics/collision/resolver/SatResolver.d.ts +10 -7
  66. package/lib/physics/collision/shape/Circumference.d.ts +18 -0
  67. package/lib/physics/collision/shape/Line.d.ts +19 -0
  68. package/lib/physics/collision/shape/Polygon.d.ts +31 -0
  69. package/lib/physics/collision/shape/Rectangle.d.ts +7 -11
  70. package/lib/physics/collision/shape/Shape.d.ts +13 -24
  71. package/lib/physics/collision-old/CollisionData.d.ts +8 -0
  72. package/lib/physics/collision-old/CollisionManager.d.ts +30 -0
  73. package/lib/physics/collision-old/QuadTree.d.ts +32 -0
  74. package/lib/physics/collision-old/collider/ICollider.d.ts +14 -0
  75. package/lib/physics/collision-old/collider/RectangleCollider.d.ts +32 -0
  76. package/lib/physics/collision-old/resolver/AABBResolver.d.ts +14 -0
  77. package/lib/physics/collision-old/resolver/ICollisionResolver.d.ts +5 -0
  78. package/lib/physics/collision-old/resolver/SatResolver.d.ts +14 -0
  79. package/lib/physics/collision-old/shape/Rectangle.d.ts +13 -0
  80. package/lib/physics/collision-old/shape/Shape.d.ts +28 -0
  81. package/lib/physics/rigodBody/RigidBodyData.d.ts +11 -0
  82. package/lib/physics/rigodBody/RigidBodyManager.d.ts +26 -0
  83. package/lib/rendering/CullingService.d.ts +0 -1
  84. package/lib/rendering/renderData/GeometricRenderData.d.ts +11 -6
  85. package/lib/rendering/renderData/RenderData.d.ts +3 -4
  86. package/lib/rendering/renderData/TextRenderData.d.ts +1 -1
  87. package/lib/rendering/renderData/TilemapRenderData.d.ts +7 -1
  88. package/lib/rendering/webGL/renderer/GeometricRenderer.d.ts +6 -7
  89. package/lib/rendering/webGL/renderer/MaskRenderer.d.ts +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1,30 @@
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 collisions;
17
+ private minBounds;
18
+ private maxBounds;
19
+ private newBounds;
20
+ constructor(resolver: ICollisionResolver, quadTreeBounds: Rectangle | null, quadMaxLevel: number, collidersPerQuad: number);
21
+ addCollider(collider: ICollider): void;
22
+ removeCollider(collider: ICollider): void;
23
+ getFrameCollisionsForCollider(collider: ICollider): Collision[];
24
+ refreshCollisionsForCollider(collider: ICollider): Collision[];
25
+ update(): void;
26
+ private updateNewBounds;
27
+ private updateCollisions;
28
+ private broadPhase;
29
+ private narrowPhase;
30
+ }
@@ -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,14 @@
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
+ readonly updateCollisions: boolean;
14
+ }
@@ -0,0 +1,32 @@
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
+ readonly updateCollisions: boolean;
10
+ private _position;
11
+ private _width;
12
+ private _height;
13
+ private _angle;
14
+ private _quadVertices;
15
+ private _quadMaxBounds;
16
+ private _quadMinBounds;
17
+ constructor(position: Vector2, width: number, height: number, physics: boolean, gameObject: GameObject, angle?: number, updateCollisions?: boolean);
18
+ set position(coordinates: Vector2);
19
+ get position(): Vector2;
20
+ set width(width: number);
21
+ get width(): number;
22
+ set height(height: number);
23
+ get height(): number;
24
+ get angle(): number;
25
+ set angle(angle: number);
26
+ get bottomLeftQuadVertex(): Vector2;
27
+ get bottomRightQuadVertex(): Vector2;
28
+ get topLeftQuadVertex(): Vector2;
29
+ get topRightQuadVertex(): Vector2;
30
+ private updateShape;
31
+ private updateQuadVertices;
32
+ }
@@ -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 shapeARect;
6
+ private shapeBRect;
7
+ private overlapX;
8
+ private overlapY;
9
+ private minOverlap;
10
+ private displaceDirection;
11
+ getCollisionData(shapeA: Shape, shapeB: 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(shapeA: Shape, shapeB: 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 projA;
7
+ private projB;
8
+ private currentOverlap;
9
+ private minOverlap;
10
+ private displaceDirection;
11
+ getCollisionData(shapeA: Shape, shapeB: 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,11 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ import { ColliderData } from "../collision/ColliderData";
3
+ import { RigidBodyType } from "./RigidBodyManager";
4
+ export interface RigidBodyData {
5
+ type: RigidBodyType;
6
+ position: Vector2;
7
+ gravity: number;
8
+ velocity: Vector2;
9
+ colliders: ColliderData[];
10
+ cacheVelocity?: Vector2;
11
+ }
@@ -0,0 +1,26 @@
1
+ import { CollisionManager } from "../collision/CollisionManager";
2
+ import { RigidBodyData } from "./RigidBodyData";
3
+ export declare enum RigidBodyType {
4
+ Static = 0,
5
+ Dynamic = 1,
6
+ Kinematic = 2
7
+ }
8
+ export declare class RigidBodyManager {
9
+ private readonly collisionManager;
10
+ private rigidBodyData;
11
+ private cacheVelocity;
12
+ private cacheDisplacement;
13
+ private cacheNewDisplacement;
14
+ private cacheCollisions;
15
+ constructor(collisionManager: CollisionManager);
16
+ addRigidBodyData(data: RigidBodyData): void;
17
+ removeRigidBodyData(data: RigidBodyData): void;
18
+ update(deltaTime: number): void;
19
+ private dynamicUpdate;
20
+ private kinematicUpdate;
21
+ private applyGravity;
22
+ private applyVelocity;
23
+ private applyReposition;
24
+ private getCollisions;
25
+ clear(): void;
26
+ }
@@ -4,7 +4,6 @@ export declare class CullingService {
4
4
  applyCulling(camera: CameraData, renderDataCollection: RenderData[]): RenderData[];
5
5
  private cullSprite;
6
6
  private cullTilemap;
7
- private cullCollider;
8
7
  private cullGeometric;
9
8
  private cullText;
10
9
  private isTargetVisible;
@@ -1,12 +1,17 @@
1
1
  import { Rectangle } from "../../math/Rectangle";
2
+ import { Vector2 } from "../../math/Vector2";
2
3
  import { RenderData, RenderDataType } from "./RenderData";
3
- declare type Geometric = Rectangle;
4
- declare type GeometricType = "Rectangle";
4
+ export declare enum GeometricShape {
5
+ Polygon = 0,
6
+ Circumference = 1,
7
+ Line = 2
8
+ }
5
9
  export declare class GeometricRenderData extends RenderData {
6
10
  type: RenderDataType;
7
11
  color: string;
8
- geometricType: GeometricType;
9
- geometric: Geometric;
10
- getGeometric<T extends Geometric>(): T;
12
+ shape: GeometricShape;
13
+ vertexModel: Vector2[];
14
+ angle: number;
15
+ radius: number;
16
+ boundingBox: Rectangle;
11
17
  }
12
- export {};
@@ -3,10 +3,9 @@ import { Vector2 } from "../../math/Vector2";
3
3
  export declare enum RenderDataType {
4
4
  Image = 0,
5
5
  Text = 1,
6
- Geometric = 2,
7
- Collider = 3,
8
- Tilemap = 4,
9
- Mask = 5
6
+ Tilemap = 2,
7
+ Mask = 3,
8
+ Geometric = 4
10
9
  }
11
10
  export declare abstract class RenderData {
12
11
  abstract type: RenderDataType;
@@ -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;
@@ -1,6 +1,11 @@
1
1
  import { Vector2 } from "../../math/Vector2";
2
- import { Tile } from "../../component/renderingComponent/tilemap/Tile";
3
2
  import { RenderData, RenderDataType } from "./RenderData";
3
+ interface Tile {
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ }
4
9
  export declare class TileRenderData {
5
10
  tile: Tile;
6
11
  position: Vector2;
@@ -20,3 +25,4 @@ export declare class TilemapRenderData extends RenderData {
20
25
  textureCorrection: number;
21
26
  tintColor: string;
22
27
  }
28
+ export {};
@@ -1,6 +1,5 @@
1
1
  import { Rectangle } from "../../../math/Rectangle";
2
2
  import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
3
- import { ColliderRenderData } from "../../renderData/ColliderRenderData";
4
3
  import { ProgramManager } from "../ProgramManager";
5
4
  import { GeometricRenderData } from "../../renderData/GeometricRenderData";
6
5
  export declare class GeometricRenderer {
@@ -10,13 +9,13 @@ export declare class GeometricRenderer {
10
9
  private modelMatrix;
11
10
  private textureMatrix;
12
11
  private readonly vertices;
13
- private readonly texVertices;
12
+ private readonly circumferenceVertices;
14
13
  private lastVertices;
15
14
  private lastRender;
16
15
  constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager);
17
- renderCollider(viewportRect: Rectangle, renderData: ColliderRenderData, lastRender: LastRender): void;
18
- renderGeometric(viewportRect: Rectangle, renderData: GeometricRenderData, lastRender: LastRender): void;
19
- private renderRectangle;
20
- private generateRectangleVertices;
21
- private generateLineVertices;
16
+ render(viewportRect: Rectangle, renderData: GeometricRenderData, lastRender: LastRender): void;
17
+ private renderLines;
18
+ private generateVerticesKey;
19
+ private generatePolygonVertices;
20
+ private renderCircumference;
22
21
  }
@@ -1,4 +1,4 @@
1
- import { Rectangle } from "../../..";
1
+ import { Rectangle } from "../../../math/Rectangle";
2
2
  import { MaskRenderData } from "../../renderData/MaskRenderData";
3
3
  import { ProgramManager } from "../ProgramManager";
4
4
  import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angry-pixel",
3
- "version": "1.0.9",
3
+ "version": "1.1.2",
4
4
  "description": "Lightweight 2D game engine made with TypeScript.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",