angry-pixel 1.1.5 → 1.1.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 (51) hide show
  1. package/lib/component/RigidBody.d.ts +9 -9
  2. package/lib/component/Sprite.d.ts +1 -1
  3. package/lib/component/collider/BallCollider.d.ts +1 -2
  4. package/lib/component/collider/BoxCollider.d.ts +1 -2
  5. package/lib/component/collider/Collider.d.ts +6 -8
  6. package/lib/component/collider/EdgeCollider.d.ts +0 -3
  7. package/lib/component/collider/PolygonCollider.d.ts +3 -6
  8. package/lib/component/collider/TilemapCollider.d.ts +0 -1
  9. package/lib/component/rendering/SpriteRenderer.d.ts +2 -1
  10. package/lib/core/Component.d.ts +3 -3
  11. package/lib/core/Game.d.ts +3 -26
  12. package/lib/core/GameActor.d.ts +3 -0
  13. package/lib/core/GameConfig.d.ts +18 -0
  14. package/lib/core/GameObject.d.ts +3 -3
  15. package/lib/core/Scene.d.ts +3 -1
  16. package/lib/core/ioc/Config.d.ts +1 -1
  17. package/lib/core/managers/GameObjectManager.d.ts +3 -0
  18. package/lib/core/managers/HeadlessIterationManager.d.ts +4 -4
  19. package/lib/core/managers/IterationManager.d.ts +4 -4
  20. package/lib/core/managers/SceneManager.d.ts +4 -5
  21. package/lib/core/managers/TimeManager.d.ts +1 -1
  22. package/lib/index.cjs.js +1 -15
  23. package/lib/index.d.ts +3 -4
  24. package/lib/index.esm.js +1 -15
  25. package/lib/index.js +1 -15
  26. package/lib/utils/Container.d.ts +1 -1
  27. package/package.json +6 -5
  28. package/.eslintignore +0 -2
  29. package/.eslintrc +0 -16
  30. package/.prettierrc +0 -4
  31. package/.vscode/settings.json +0 -2
  32. package/lib/physics/collision/ColliderData.d.ts +0 -15
  33. package/lib/physics/collision/CollisionManager.d.ts +0 -35
  34. package/lib/physics/collision/QuadTree.d.ts +0 -37
  35. package/lib/physics/collision/method/AABBMethod.d.ts +0 -13
  36. package/lib/physics/collision/method/CollisionMethod.d.ts +0 -5
  37. package/lib/physics/collision/method/SatMethod.d.ts +0 -11
  38. package/lib/physics/collision/resolver/AABBResolver.d.ts +0 -11
  39. package/lib/physics/collision/resolver/CircumferenceAABBResolver.d.ts +0 -9
  40. package/lib/physics/collision/resolver/CircumferenceResolver.d.ts +0 -7
  41. package/lib/physics/collision/resolver/CollisionResolver.d.ts +0 -10
  42. package/lib/physics/collision/resolver/SatResolver.d.ts +0 -17
  43. package/lib/physics/collision/shape/Circumference.d.ts +0 -17
  44. package/lib/physics/collision/shape/Line.d.ts +0 -18
  45. package/lib/physics/collision/shape/Polygon.d.ts +0 -30
  46. package/lib/physics/collision/shape/Rectangle.d.ts +0 -9
  47. package/lib/physics/collision/shape/Shape.d.ts +0 -16
  48. package/lib/physics/rigodBody/RigidBodyData.d.ts +0 -11
  49. package/lib/physics/rigodBody/RigidBodyManager.d.ts +0 -26
  50. package/rollup.config.js +0 -17
  51. package/tsconfig.json +0 -19
@@ -1,4 +1,4 @@
1
- declare type constructor = () => unknown;
1
+ type constructor = () => unknown;
2
2
  export declare class Container {
3
3
  private instances;
4
4
  private constructors;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angry-pixel",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Lightweight 2D game engine made with TypeScript.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -47,12 +47,13 @@
47
47
  "prettier": "^2.1.2",
48
48
  "rollup": "^2.49.0",
49
49
  "rollup-plugin-terser": "^7.0.2",
50
- "rollup-plugin-typescript2": "^0.30.0",
51
- "tslib": "^2.3.1",
50
+ "rollup-plugin-typescript2": "0.34.0",
51
+ "tslib": "^2.4.1",
52
52
  "typescript": "^4.0.2"
53
53
  },
54
54
  "dependencies": {
55
- "angry-pixel-2d-renderer": "^1.0.1",
56
- "angry-pixel-math": "^1.0.1"
55
+ "angry-pixel-2d-physics": "^1.0.1",
56
+ "angry-pixel-2d-renderer": "^1.0.3",
57
+ "angry-pixel-math": "^1.0.2"
57
58
  }
58
59
  }
package/.eslintignore DELETED
@@ -1,2 +0,0 @@
1
- node_modules
2
- dist
package/.eslintrc DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "root": true,
3
- "parser": "@typescript-eslint/parser",
4
- "plugins": [
5
- "@typescript-eslint"
6
- ],
7
- "extends": [
8
- "eslint:recommended",
9
- "plugin:@typescript-eslint/eslint-recommended",
10
- "plugin:@typescript-eslint/recommended"
11
- ],
12
- "rules": {
13
- "@typescript-eslint/no-inferrable-types": "off",
14
- "@typescript-eslint/ban-ts-comment": "off"
15
- }
16
- }
package/.prettierrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "tabWidth": 4,
3
- "printWidth": 120
4
- }
@@ -1,2 +0,0 @@
1
- {
2
- }
@@ -1,15 +0,0 @@
1
- import { QuadItem } from "./QuadTree";
2
- import { Shape } from "./shape/Shape";
3
- export declare class ColliderData implements QuadItem {
4
- shape: Shape;
5
- layer: string;
6
- id: string;
7
- updateCollisions: boolean;
8
- physics: boolean;
9
- rigidBody: boolean;
10
- constructor(shape: Shape, layer: string, id: string, updateCollisions: boolean, physics: boolean, rigidBody: boolean);
11
- get x(): number;
12
- get y(): number;
13
- get x1(): number;
14
- get y1(): number;
15
- }
@@ -1,35 +0,0 @@
1
- import { Rectangle } from "angry-pixel-math";
2
- import { ColliderData } from "./ColliderData";
3
- import { CollisionMethod } from "./method/CollisionMethod";
4
- import { CollisionResolution } from "./resolver/CollisionResolver";
5
- export interface Collision {
6
- localCollider: ColliderData;
7
- remoteCollider: ColliderData;
8
- resolution: CollisionResolution;
9
- }
10
- export declare type CollisionMatrix = [string, string][];
11
- export declare class CollisionManager {
12
- private colliders;
13
- private quadTree;
14
- private bounds;
15
- private fixedQuadTree;
16
- private method;
17
- private collisions;
18
- private collisionMatrix;
19
- private minBounds;
20
- private maxBounds;
21
- private newBounds;
22
- constructor(method: CollisionMethod, quadMaxLevel: number, collidersPerQuad: number, quadTreeBounds?: Rectangle, collisionMatrix?: CollisionMatrix | null);
23
- private setupQuadTree;
24
- addCollider(collider: ColliderData): void;
25
- removeCollider(collider: ColliderData): void;
26
- getCollisionsForCollider(collider: ColliderData): Collision[];
27
- refreshCollisionsForCollider(collider: ColliderData): void;
28
- clear(): void;
29
- update(): void;
30
- private updateNewBounds;
31
- private updateCollisions;
32
- private broadPhase;
33
- private narrowPhase;
34
- private isResolved;
35
- }
@@ -1,37 +0,0 @@
1
- import { Rectangle } from "angry-pixel-math";
2
- export declare const DEFAULT_MAX_ITEMS: number;
3
- export declare const DEFAULT_MAX_LEVELS: number;
4
- export interface QuadItem {
5
- x: number;
6
- y: number;
7
- x1: number;
8
- y1: number;
9
- }
10
- export declare class QuadTree {
11
- private _bounds;
12
- private _items;
13
- private _quadrants;
14
- private readonly maxLevels;
15
- private readonly maxItems;
16
- private readonly level;
17
- private readonly sw;
18
- private readonly se;
19
- private readonly nw;
20
- private readonly ne;
21
- private center;
22
- private childrenWidth;
23
- private childrenHeight;
24
- private quadsForItem;
25
- constructor(level: number, bounds: Rectangle, maxLevels?: number, maxItems?: number);
26
- get bounds(): Rectangle;
27
- get quadrants(): QuadTree[];
28
- updateBounds(bounds: Rectangle): void;
29
- clearItems(): void;
30
- clearQuadrants(): void;
31
- addItem(item: QuadItem): void;
32
- retrieve<T extends QuadItem>(item: QuadItem): T[];
33
- private splitQuad;
34
- private getChildrenQuadrantForItem;
35
- private insertItemIntoChildrenQuads;
36
- private updateCache;
37
- }
@@ -1,13 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { CollisionResolution } from "../resolver/CollisionResolver";
3
- import { CollisionMethod } from "./CollisionMethod";
4
- import { AABBResolver } from "../resolver/AABBResolver";
5
- import { CircumferenceAABBResolver } from "../resolver/CircumferenceAABBResolver";
6
- import { CircumferenceResolver } from "../resolver/CircumferenceResolver";
7
- export declare class AABBMethod implements CollisionMethod {
8
- private readonly AABBResolver;
9
- private readonly circumferenceAABBResolver;
10
- private readonly circumferenceResolver;
11
- constructor(AABBResolver: AABBResolver, circumferenceAABBResolver: CircumferenceAABBResolver, circumferenceResolver: CircumferenceResolver);
12
- getCollisionResolution(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
13
- }
@@ -1,5 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { CollisionResolution } from "../resolver/CollisionResolver";
3
- export interface CollisionMethod {
4
- getCollisionResolution(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
5
- }
@@ -1,11 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { CollisionResolution } from "../resolver/CollisionResolver";
3
- import { CollisionMethod } from "./CollisionMethod";
4
- import { CircumferenceResolver } from "../resolver/CircumferenceResolver";
5
- import { SatResolver } from "../resolver/SatResolver";
6
- export declare class SatMethod implements CollisionMethod {
7
- private readonly circumferenceResolver;
8
- private readonly satResolver;
9
- constructor(circumferenceResolver: CircumferenceResolver, satResolver: SatResolver);
10
- getCollisionResolution(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
11
- }
@@ -1,11 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { CollisionResolution, CollisionResolver } from "./CollisionResolver";
3
- export declare class AABBResolver implements CollisionResolver {
4
- private overlapX;
5
- private overlapY;
6
- private minOverlap;
7
- private direction;
8
- private displacementDirection;
9
- resolve({ boundingBox: boxA }: Shape, { boundingBox: boxB }: Shape): CollisionResolution | null;
10
- private preventContainment;
11
- }
@@ -1,9 +0,0 @@
1
- import { Circumference } from "../shape/Circumference";
2
- import { Rectangle } from "../shape/Rectangle";
3
- import { CollisionResolver, CollisionResolution } from "./CollisionResolver";
4
- export declare class CircumferenceAABBResolver implements CollisionResolver {
5
- private closestPoint;
6
- private distance;
7
- private direction;
8
- resolve(shapeA: Circumference, shapeB: Rectangle, invert?: boolean): CollisionResolution;
9
- }
@@ -1,7 +0,0 @@
1
- import { Circumference } from "../shape/Circumference";
2
- import { CollisionResolution, CollisionResolver } from "./CollisionResolver";
3
- export declare class CircumferenceResolver implements CollisionResolver {
4
- private distance;
5
- private direction;
6
- resolve(shapeA: Circumference, shapeB: Circumference): CollisionResolution;
7
- }
@@ -1,10 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { Vector2 } from "angry-pixel-math";
3
- export interface CollisionResolution {
4
- penetration: number;
5
- direction: Vector2;
6
- displacementDirection: Vector2;
7
- }
8
- export interface CollisionResolver {
9
- resolve(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
10
- }
@@ -1,17 +0,0 @@
1
- import { Shape } from "../shape/Shape";
2
- import { CollisionResolution, CollisionResolver } from "./CollisionResolver";
3
- export declare class SatResolver implements CollisionResolver {
4
- private axes;
5
- private projA;
6
- private projB;
7
- private currentOverlap;
8
- private minOverlap;
9
- private displacementDirection;
10
- private distance;
11
- private cache;
12
- resolve(shapeA: Shape, shapeB: Shape): CollisionResolution | null;
13
- private projectShapeOntoAxis;
14
- private preventContainment;
15
- private setCircumferenceAxis;
16
- private setCircumferenceVertices;
17
- }
@@ -1,17 +0,0 @@
1
- import { Rectangle, Vector2 } from "angry-pixel-math";
2
- import { Shape, ShapeType } from "./Shape";
3
- export declare class Circumference implements Shape {
4
- readonly type: ShapeType;
5
- readonly vertices: Vector2[];
6
- readonly projectionAxes: Vector2[];
7
- readonly boundingBox: Rectangle;
8
- readonly angle: number;
9
- readonly vertexModel: Vector2[];
10
- radius: number;
11
- protected _position: Vector2;
12
- constructor(radius: number);
13
- set position(value: Vector2);
14
- get position(): Vector2;
15
- update(): void;
16
- protected updateBoundingBox(): void;
17
- }
@@ -1,18 +0,0 @@
1
- import { Rectangle, Vector2 } from "angry-pixel-math";
2
- import { Shape, ShapeType } from "./Shape";
3
- export declare class Line implements Shape {
4
- vertexModel: [Vector2, Vector2];
5
- readonly type: ShapeType;
6
- readonly vertices: Vector2[];
7
- readonly projectionAxes: Vector2[];
8
- readonly boundingBox: Rectangle;
9
- angle: number;
10
- private _position;
11
- constructor(vertexModel: [Vector2, Vector2]);
12
- update(): void;
13
- set position(value: Vector2);
14
- get position(): Vector2;
15
- protected updateVertices(): void;
16
- protected updateBoundingBox(): void;
17
- protected updateProjectionAxes(): void;
18
- }
@@ -1,30 +0,0 @@
1
- import { Rectangle, Vector2 } from "angry-pixel-math";
2
- import { Shape, ShapeType } from "./Shape";
3
- export declare class Polygon implements Shape {
4
- protected _type: ShapeType;
5
- protected _vertices: Vector2[];
6
- protected _boundingBox: Rectangle;
7
- protected _projectionAxes: Vector2[];
8
- protected _position: Vector2;
9
- protected _angle: number;
10
- protected _vertexModel: Vector2[];
11
- private boxMinX;
12
- private boxMinY;
13
- private boxMaxX;
14
- private boxMaxY;
15
- constructor(vertexModel: Vector2[]);
16
- get type(): ShapeType;
17
- get vertices(): Vector2[];
18
- get boundingBox(): Rectangle;
19
- get projectionAxes(): Vector2[];
20
- set position(value: Vector2);
21
- get position(): Vector2;
22
- set angle(value: number);
23
- get angle(): number;
24
- get vertexModel(): Vector2[];
25
- set vertexModel(value: Vector2[]);
26
- update(): void;
27
- protected updateVertices(): void;
28
- protected updateBoundingBox(): void;
29
- protected updateProjectionAxes(): void;
30
- }
@@ -1,9 +0,0 @@
1
- import { Vector2 } from "angry-pixel-math";
2
- import { Polygon } from "./Polygon";
3
- export declare class Rectangle extends Polygon {
4
- width: number;
5
- height: number;
6
- constructor(width: number, height: number, position: Vector2);
7
- updateSize(width: number, height: number): void;
8
- protected updateProjectionAxes(): void;
9
- }
@@ -1,16 +0,0 @@
1
- import { Rectangle, Vector2 } from "angry-pixel-math";
2
- export declare enum ShapeType {
3
- Polygon = 0,
4
- Circumference = 1,
5
- Line = 2
6
- }
7
- export interface Shape {
8
- readonly vertices: Vector2[];
9
- readonly type: ShapeType;
10
- readonly boundingBox: Rectangle;
11
- readonly projectionAxes: Vector2[];
12
- vertexModel: Vector2[];
13
- position: Vector2;
14
- angle: number;
15
- update(): void;
16
- }
@@ -1,11 +0,0 @@
1
- import { Vector2 } from "angry-pixel-math";
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
- }
@@ -1,26 +0,0 @@
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
- }
package/rollup.config.js DELETED
@@ -1,17 +0,0 @@
1
- import { nodeResolve } from "@rollup/plugin-node-resolve";
2
- import commonjs from "@rollup/plugin-commonjs";
3
- import typescript from "rollup-plugin-typescript2";
4
- import { terser } from "rollup-plugin-terser";
5
-
6
- const builder = (format, filename) => ({
7
- exports: "named",
8
- name: "AngryPixel",
9
- file: "lib/" + filename,
10
- format,
11
- });
12
-
13
- export default {
14
- input: "src/index.ts",
15
- output: [builder("umd", "index.js"), builder("esm", "index.esm.js"), builder("cjs", "index.cjs.js")],
16
- plugins: [nodeResolve({ preferBuiltins: false }), typescript(), commonjs({ extensions: [".ts", ".js"] }), terser()],
17
- };
package/tsconfig.json DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES5",
4
- "module": "ES2015",
5
- "lib": ["ES2020", "dom"],
6
- "declaration": true,
7
- "outDir": "lib/",
8
- "rootDir": "src/",
9
- "strict": true,
10
- "strictNullChecks": false,
11
- "strictPropertyInitialization": false,
12
- "sourceMap": true,
13
- "suppressExcessPropertyErrors": true,
14
- "moduleResolution": "Node",
15
- "esModuleInterop": true
16
- },
17
- "include": ["src"],
18
- "exclude": ["node_modules", "lib"]
19
- }