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,23 +1,23 @@
1
1
  import { EngineComponent } from "../core/Component";
2
2
  import { Vector2 } from "angry-pixel-math";
3
- import { RigidBodyType } from "../physics/rigodBody/RigidBodyManager";
4
3
  import { InitOptions } from "../core/GameActor";
5
- export { RigidBodyType } from "../physics/rigodBody/RigidBodyManager";
4
+ import { RigidBodyType } from "angry-pixel-2d-physics";
5
+ export { RigidBodyType } from "angry-pixel-2d-physics";
6
6
  export interface RigidBodyOptions extends InitOptions {
7
7
  rigidBodyType: RigidBodyType;
8
8
  gravity?: number;
9
9
  }
10
10
  export declare class RigidBody extends EngineComponent {
11
11
  readonly allowMultiple: boolean;
12
- private rigidBodyManager;
13
- private data;
14
- set velocity(velocity: Vector2);
12
+ private physicsManager;
13
+ private rigidBody;
15
14
  get velocity(): Vector2;
16
- set gravity(gravity: number);
15
+ set velocity(velocity: Vector2);
17
16
  get gravity(): number;
18
- get rigidBodyType(): RigidBodyType;
17
+ set gravity(gravity: number);
19
18
  protected init({ rigidBodyType, gravity }: RigidBodyOptions): void;
20
- protected start(): void;
21
19
  protected update(): void;
22
- private getColliders;
20
+ private getColliderIds;
21
+ protected onActiveChange(): void;
22
+ protected onDestroy(): void;
23
23
  }
@@ -10,8 +10,8 @@ export interface SpriteConfig {
10
10
  export declare class Sprite {
11
11
  readonly image: HTMLImageElement;
12
12
  readonly slice: Slice;
13
- readonly scale: Vector2;
14
13
  readonly smooth: boolean;
14
+ scale?: Vector2;
15
15
  private _width;
16
16
  private _height;
17
17
  private _loaded;
@@ -18,10 +18,9 @@ export declare class BallCollider extends Collider {
18
18
  private realPosition;
19
19
  private innerPosition;
20
20
  protected init(config: BallColliderOptions): void;
21
- protected start(): void;
22
21
  protected update(): void;
23
22
  private updateRealSize;
24
23
  protected updatePosition(): void;
25
24
  private translate;
26
- private updateShape;
25
+ private updateCollider;
27
26
  }
@@ -26,10 +26,9 @@ export declare class BoxCollider extends Collider {
26
26
  private applyRotation;
27
27
  private innerPosition;
28
28
  protected init(config: BoxColliderOptions): void;
29
- protected start(): void;
30
29
  protected update(): void;
31
30
  private updateRealSize;
32
31
  protected updatePosition(): void;
33
32
  private translate;
34
- private updateShape;
33
+ private updateCollider;
35
34
  }
@@ -1,11 +1,9 @@
1
1
  import { ColliderComponent, RenderComponent } from "../../core/Component";
2
- import { CollisionManager } from "../../physics/collision/CollisionManager";
3
- import { ColliderData } from "../../physics/collision/ColliderData";
4
2
  import { GameObject } from "../../core/GameObject";
5
- import { CollisionResolution } from "../../physics/collision/resolver/CollisionResolver";
3
+ import { ICollisionResolution, ICollider, IPhysicsManager } from "angry-pixel-2d-physics";
6
4
  export interface CollisionData {
7
- resolution: CollisionResolution;
8
- collider: ColliderData;
5
+ resolution: ICollisionResolution;
6
+ collider: ICollider;
9
7
  gameObject: GameObject;
10
8
  /**
11
9
  * @return The GameObject to which this component belongs
@@ -13,15 +11,15 @@ export interface CollisionData {
13
11
  getGameObject: <T extends GameObject>() => T;
14
12
  }
15
13
  export declare abstract class Collider extends ColliderComponent {
16
- protected collisionManager: CollisionManager;
14
+ protected physicsManager: IPhysicsManager;
17
15
  protected renderer: RenderComponent;
18
- readonly colliders: ColliderData[];
16
+ readonly colliders: ICollider[];
19
17
  layer: string;
20
18
  physics: boolean;
21
- protected update(): void;
22
19
  collidesWithLayer(layer: string): boolean;
23
20
  getCollisionWithLayer(layer: string): CollisionData | null;
24
21
  getCollisionsWithLayer(layer: string): CollisionData[];
25
22
  private createCollisionData;
26
23
  protected onActiveChange(): void;
24
+ protected onDestroy(): void;
27
25
  }
@@ -1,5 +1,4 @@
1
1
  import { Collider } from "./Collider";
2
- import { GameObject } from "../../core/GameObject";
3
2
  import { InitOptions } from "../../core/GameActor";
4
3
  import { Vector2, Rotation } from "angry-pixel-math";
5
4
  export interface EdgeColliderOptions extends InitOptions {
@@ -22,9 +21,7 @@ export declare class EdgeCollider extends Collider {
22
21
  private scaledPosition;
23
22
  private finalRotation;
24
23
  private innerPosition;
25
- constructor(gameObject: GameObject, name?: string);
26
24
  protected init(config: EdgeColliderOptions): void;
27
- protected start(): void;
28
25
  protected update(): void;
29
26
  private updateSize;
30
27
  protected updatePosition(): void;
@@ -1,9 +1,8 @@
1
1
  import { Collider } from "./Collider";
2
- import { ColliderData } from "../../physics/collision/ColliderData";
3
2
  import { RenderComponent } from "../../core/Component";
4
3
  import { InitOptions } from "../../core/GameActor";
5
- import { GameObject } from "../../core/GameObject";
6
4
  import { Vector2, Rotation } from "angry-pixel-math";
5
+ import { ICollider } from "angry-pixel-2d-physics";
7
6
  export interface PolygonColliderOptions extends InitOptions {
8
7
  vertexModel: Vector2[];
9
8
  offsetX?: number;
@@ -24,21 +23,19 @@ export declare class PolygonCollider extends Collider {
24
23
  private scaledPosition;
25
24
  private finalRotation;
26
25
  private innerPosition;
27
- constructor(gameObject: GameObject, name?: string);
28
26
  protected init(config: PolygonColliderOptions): void;
29
- protected start(): void;
30
27
  protected update(): void;
31
28
  private updateSize;
32
29
  protected updatePosition(): void;
33
30
  private translate;
34
- private updateShape;
31
+ private updateCollider;
35
32
  }
36
33
  export declare class PolygonColliderRenderer extends RenderComponent {
37
34
  private renderManager;
38
35
  private renderData;
39
36
  private collider;
40
37
  protected init({ collider }: {
41
- collider: ColliderData;
38
+ collider: ICollider;
42
39
  }): void;
43
40
  protected update(): void;
44
41
  }
@@ -17,7 +17,6 @@ export declare class TilemapCollider extends Collider {
17
17
  private scaledTileHeight;
18
18
  private position;
19
19
  protected init(config: TilemapColliderOptions): void;
20
- protected start(): void;
21
20
  private useBoxColliders;
22
21
  private useLineColliders;
23
22
  private hasTile;
@@ -15,7 +15,8 @@ export interface SpriteRendererOptions {
15
15
  layer?: string;
16
16
  }
17
17
  export declare class SpriteRenderer extends RenderComponent {
18
- private renderManager;
18
+ private readonly renderManager;
19
+ private readonly spriteDefaultScale;
19
20
  sprite: Sprite;
20
21
  offset: Vector2;
21
22
  flipHorizontal: boolean;
@@ -2,15 +2,15 @@ import { GameObject } from "./GameObject";
2
2
  import { Scene } from "./Scene";
3
3
  import { FrameEvent } from "./managers/IterationManager";
4
4
  import { GameActor } from "./GameActor";
5
- export declare type ComponentClass<T extends Component = Component> = new (gameObject: GameObject, name?: string) => T;
5
+ import { Container } from "../utils/Container";
6
+ export type ComponentClass<T extends Component = Component> = new (container: Container, gameObject: GameObject, name?: string) => T;
6
7
  export declare abstract class Component extends GameActor {
7
- private readonly sceneManager;
8
8
  readonly id: string;
9
9
  readonly name: string;
10
10
  readonly gameObject: GameObject;
11
11
  readonly allowMultiple: boolean;
12
12
  private _active;
13
- constructor(gameObject: GameObject, name?: string);
13
+ constructor(container: Container, gameObject: GameObject, name?: string);
14
14
  get active(): boolean;
15
15
  set active(active: boolean);
16
16
  /**
@@ -1,31 +1,8 @@
1
- import { SceneClass } from "../core/managers/SceneManager";
2
- import { Container } from "../utils/Container";
3
- import { Rectangle, Vector2 } from "angry-pixel-math";
4
- import { CollisionMatrix } from "../physics/collision/CollisionManager";
5
1
  import { InitOptions } from "./GameActor";
6
- export declare const container: Container;
7
- export interface GameConfig {
8
- containerNode?: HTMLElement | null;
9
- gameWidth?: number;
10
- gameHeight?: number;
11
- debugEnabled?: boolean;
12
- canvasColor?: string;
13
- physicsFramerate?: number;
14
- spriteDefaultScale?: Vector2 | null;
15
- headless?: boolean;
16
- collisions?: {
17
- method?: CollisionMethodConfig;
18
- quadTreeBounds?: Rectangle | null;
19
- quadMaxLevel?: number;
20
- collidersPerQuad?: number;
21
- collisionMatrix?: CollisionMatrix;
22
- };
23
- }
24
- export declare enum CollisionMethodConfig {
25
- AABB = "aabb",
26
- SAT = "sat"
27
- }
2
+ import { GameConfig } from "./GameConfig";
3
+ import { SceneClass } from "./Scene";
28
4
  export declare class Game {
5
+ private readonly container;
29
6
  private sceneManager;
30
7
  private iterationManager;
31
8
  private _config;
@@ -1,3 +1,4 @@
1
+ import { Container } from "../utils/Container";
1
2
  import { GameObject, GameObjectClass } from "./GameObject";
2
3
  import { GameObjectManager } from "./managers/GameObjectManager";
3
4
  import { FrameEvent } from "./managers/IterationManager";
@@ -7,7 +8,9 @@ export interface InitOptions {
7
8
  export declare abstract class GameActor {
8
9
  protected readonly gameObjectManager: GameObjectManager;
9
10
  protected readonly updateEvent: FrameEvent;
11
+ protected readonly container: Container;
10
12
  private started;
13
+ constructor(container: Container);
11
14
  dispatch(event: FrameEvent, options?: InitOptions): void;
12
15
  /**
13
16
  * This method is called after instantiation (recommended for the creation of game objects).
@@ -0,0 +1,18 @@
1
+ import { BroadPhaseMethods, CollisionMatrix, CollisionMethods } from "angry-pixel-2d-physics";
2
+ import { Rectangle, Vector2 } from "angry-pixel-math";
3
+ export interface GameConfig {
4
+ containerNode?: HTMLElement | null;
5
+ gameWidth?: number;
6
+ gameHeight?: number;
7
+ debugEnabled?: boolean;
8
+ canvasColor?: string;
9
+ physicsFramerate?: number;
10
+ spriteDefaultScale?: Vector2 | null;
11
+ headless?: boolean;
12
+ collisions?: {
13
+ collisionMethod?: CollisionMethods;
14
+ collisionArea?: Rectangle;
15
+ collisionMatrix?: CollisionMatrix;
16
+ collisionBroadPhaseMethod?: BroadPhaseMethods;
17
+ };
18
+ }
@@ -3,8 +3,9 @@ import { Transform } from "../component/Transform";
3
3
  import { RigidBody } from "../component/RigidBody";
4
4
  import { Scene } from "./Scene";
5
5
  import { GameActor, InitOptions } from "./GameActor";
6
+ import { Container } from "../utils/Container";
6
7
  export declare const LAYER_DEFAULT = "Default";
7
- export declare type GameObjectClass<T extends GameObject = GameObject> = new (name?: string, parent?: GameObject) => T;
8
+ export type GameObjectClass<T extends GameObject = GameObject> = new (container: Container, name?: string, parent?: GameObject) => T;
8
9
  export declare class GameObject extends GameActor {
9
10
  readonly id: string;
10
11
  readonly name: string;
@@ -14,11 +15,10 @@ export declare class GameObject extends GameActor {
14
15
  keep: boolean;
15
16
  private _parent;
16
17
  private _active;
17
- private sceneManager;
18
18
  private components;
19
19
  private activeComponentsCache;
20
20
  private activeChildrenCache;
21
- constructor(name?: string, parent?: GameObject);
21
+ constructor(container: Container, name?: string, parent?: GameObject);
22
22
  get active(): boolean;
23
23
  set active(active: boolean);
24
24
  get parent(): GameObject | null;
@@ -1,10 +1,12 @@
1
1
  import { GameCamera } from "../gameObject/GameCamera";
2
+ import { Container } from "../utils/Container";
2
3
  import { Game } from "./Game";
3
4
  import { GameActor } from "./GameActor";
5
+ export type SceneClass = new (container: Container, name: string, game: Game) => Scene;
4
6
  export declare class Scene extends GameActor {
5
7
  readonly name: string;
6
8
  readonly game: Game;
7
- constructor(name: string, game: Game);
9
+ constructor(container: Container, name: string, game: Game);
8
10
  get gameCamera(): GameCamera;
9
11
  protected _destroy(): void;
10
12
  }
@@ -1,3 +1,3 @@
1
- import { GameConfig } from "../Game";
2
1
  import { Container } from "../../utils/Container";
2
+ import { GameConfig } from "../GameConfig";
3
3
  export declare const loadDependencies: (container: Container, gameConfig: GameConfig) => void;
@@ -1,7 +1,10 @@
1
1
  import { GameObject, GameObjectClass } from "../GameObject";
2
2
  import { InitOptions } from "../GameActor";
3
+ import { Container } from "../../utils/Container";
3
4
  export declare class GameObjectManager {
5
+ private readonly container;
4
6
  private gameObjects;
7
+ constructor(container: Container);
5
8
  addGameObject<T extends GameObject>(gameObjectClass: GameObjectClass<T>, options?: InitOptions, parent?: GameObject, name?: string): T;
6
9
  findGameObjects<T extends GameObject>(gameObjectClass?: GameObjectClass<T>): T[];
7
10
  findGameObjectById<T extends GameObject>(id: string): T;
@@ -1,12 +1,10 @@
1
1
  import { GameObjectManager } from "./GameObjectManager";
2
2
  import { SceneManager } from "./SceneManager";
3
- import { CollisionManager } from "../../physics/collision/CollisionManager";
4
- import { RigidBodyManager } from "../../physics/rigodBody/RigidBodyManager";
5
3
  import { TimeManager } from "./TimeManager";
6
4
  import { IIterationManager } from "./IterationManager";
5
+ import { IPhysicsManager } from "angry-pixel-2d-physics";
7
6
  export declare class HeadlessIterationManager implements IIterationManager {
8
7
  private readonly timeManager;
9
- private readonly collisionManager;
10
8
  private readonly physicsManager;
11
9
  private readonly gameObjectManager;
12
10
  private readonly sceneManager;
@@ -14,7 +12,9 @@ export declare class HeadlessIterationManager implements IIterationManager {
14
12
  private currentScene;
15
13
  private gameObjects;
16
14
  private components;
17
- constructor(timeManager: TimeManager, collisionManager: CollisionManager, physicsManager: RigidBodyManager, gameObjectManager: GameObjectManager, sceneManager: SceneManager);
15
+ private gameInterval;
16
+ private physicsInterval;
17
+ constructor(timeManager: TimeManager, physicsManager: IPhysicsManager, gameObjectManager: GameObjectManager, sceneManager: SceneManager);
18
18
  start(): void;
19
19
  pause(): void;
20
20
  resume(): void;
@@ -1,10 +1,9 @@
1
1
  import { GameObjectManager } from "./GameObjectManager";
2
2
  import { SceneManager } from "./SceneManager";
3
3
  import { InputManager } from "../../input/InputManager";
4
- import { CollisionManager } from "../../physics/collision/CollisionManager";
5
- import { RigidBodyManager } from "../../physics/rigodBody/RigidBodyManager";
6
4
  import { IRenderManager } from "angry-pixel-2d-renderer";
7
5
  import { TimeManager } from "./TimeManager";
6
+ import { IPhysicsManager } from "angry-pixel-2d-physics";
8
7
  export declare enum FrameEvent {
9
8
  Init = 0,
10
9
  Start = 1,
@@ -25,9 +24,9 @@ export interface IIterationManager {
25
24
  resume(): void;
26
25
  stop(): void;
27
26
  }
27
+ export declare const now: () => number;
28
28
  export declare class IterationManager implements IIterationManager {
29
29
  private readonly timeManager;
30
- private readonly collisionManager;
31
30
  private readonly physicsManager;
32
31
  private readonly renderManager;
33
32
  private readonly inputManager;
@@ -39,7 +38,8 @@ export declare class IterationManager implements IIterationManager {
39
38
  private currentScene;
40
39
  private gameObjects;
41
40
  private components;
42
- constructor(timeManager: TimeManager, collisionManager: CollisionManager, physicsManager: RigidBodyManager, renderManager: IRenderManager, inputManager: InputManager, gameObjectManager: GameObjectManager, sceneManager: SceneManager, canvasColor: string);
41
+ private physicsIntervalId;
42
+ constructor(timeManager: TimeManager, physicsManager: IPhysicsManager, renderManager: IRenderManager, inputManager: InputManager, gameObjectManager: GameObjectManager, sceneManager: SceneManager, canvasColor: string);
43
43
  start(): void;
44
44
  pause(): void;
45
45
  resume(): void;
@@ -1,17 +1,16 @@
1
- import { Game } from "../Game";
2
- import { Scene } from "../Scene";
1
+ import { Scene, SceneClass } from "../Scene";
3
2
  import { IRenderManager } from "angry-pixel-2d-renderer";
4
3
  import { InitOptions } from "../GameActor";
5
- export declare type SceneClass = new (name: string, game: Game) => Scene;
4
+ import { Container } from "../../utils/Container";
6
5
  export declare class SceneManager {
7
- private game;
6
+ private readonly container;
8
7
  private renderManager?;
9
8
  private scenes;
10
9
  private currentScene;
11
10
  private openingSceneName;
12
11
  private sceneToLoad;
13
12
  currentSceneName: string;
14
- constructor(game: Game, renderManager?: IRenderManager);
13
+ constructor(container: Container, renderManager?: IRenderManager);
15
14
  getCurrentScene<T extends Scene>(): T;
16
15
  addScene(sceneClass: SceneClass, name: string, options?: InitOptions, openingScene?: boolean): void;
17
16
  loadOpeningScene(): void;
@@ -1,4 +1,4 @@
1
- export declare const MIN_GAME_FRAMERATE = 15;
1
+ export declare const MIN_GAME_FRAMERATE = 30;
2
2
  export declare const DEFAULT_GAME_FRAMERATE = 60;
3
3
  export declare const DEFAULT_PHYSICS_FRAMERATE = 180;
4
4
  export declare class TimeManager {