angry-pixel 1.0.7 → 1.1.0

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 (131) hide show
  1. package/lib/component/Animation.d.ts +12 -0
  2. package/lib/component/Animator.d.ts +18 -0
  3. package/lib/component/AudioPlayer.d.ts +24 -0
  4. package/lib/component/Camera.d.ts +30 -0
  5. package/lib/component/ComponentTypes.d.ts +15 -0
  6. package/lib/component/RigidBody.d.ts +22 -0
  7. package/lib/component/RigidBodyOld.d.ts +39 -0
  8. package/lib/component/Sprite.d.ts +31 -0
  9. package/lib/component/Transform.d.ts +32 -0
  10. package/lib/component/collider/BoxCollider.d.ts +34 -0
  11. package/lib/component/collider/Collider.d.ts +22 -0
  12. package/lib/component/collider/PolygonCollider.d.ts +32 -0
  13. package/lib/component/collider/TilemapCollider.d.ts +16 -0
  14. package/lib/component/colliderComponent/AbstractColliderComponent.d.ts +27 -0
  15. package/lib/component/colliderComponent/BoxCollider.d.ts +34 -0
  16. package/lib/component/colliderComponent/PolygonCollider.d.ts +32 -0
  17. package/lib/component/colliderComponent/TilemapCollider.d.ts +17 -0
  18. package/lib/component/colliderComponent/TriangleCollider.d.ts +32 -0
  19. package/lib/component/rendering/MaskRenderer.d.ts +29 -0
  20. package/lib/component/rendering/SpriteRenderer.d.ts +46 -0
  21. package/lib/component/rendering/TextRenderer.d.ts +49 -0
  22. package/lib/component/rendering/tilemap/CsvTilemapRenderer.d.ts +13 -0
  23. package/lib/component/rendering/tilemap/Tile.d.ts +7 -0
  24. package/lib/component/rendering/tilemap/TileData.d.ts +10 -0
  25. package/lib/component/rendering/tilemap/TiledTilemapRenderer.d.ts +43 -0
  26. package/lib/component/rendering/tilemap/TilemapRenderer.d.ts +72 -0
  27. package/lib/component/rendering/tilemap/Tileset.d.ts +25 -0
  28. package/lib/component/renderingComponent/MaskRenderer.d.ts +29 -0
  29. package/lib/component/renderingComponent/SpriteRenderer.d.ts +46 -0
  30. package/lib/component/renderingComponent/TextRenderer.d.ts +49 -0
  31. package/lib/component/renderingComponent/tilemap/CsvTilemapRenderer.d.ts +13 -0
  32. package/lib/component/renderingComponent/tilemap/Tile.d.ts +7 -0
  33. package/lib/component/renderingComponent/tilemap/TileData.d.ts +10 -0
  34. package/lib/component/renderingComponent/tilemap/TiledTilemapRenderer.d.ts +43 -0
  35. package/lib/component/renderingComponent/tilemap/TilemapRenderer.d.ts +72 -0
  36. package/lib/component/renderingComponent/tilemap/Tileset.d.ts +25 -0
  37. package/lib/core/Component.d.ts +130 -0
  38. package/lib/core/Game.d.ts +69 -0
  39. package/lib/core/GameObject.d.ts +151 -0
  40. package/lib/core/Scene.d.ts +69 -0
  41. package/lib/core/facades/AssetManagerFacade.d.ts +29 -0
  42. package/lib/core/facades/DomManagerFacade.d.ts +8 -0
  43. package/lib/core/facades/GameObjectManagerFacade.d.ts +54 -0
  44. package/lib/core/facades/InputManagerFacade.d.ts +13 -0
  45. package/lib/core/facades/SceneManagerFacade.d.ts +18 -0
  46. package/lib/core/facades/TimeManagerFacade.d.ts +10 -0
  47. package/lib/core/ioc/Config.d.ts +3 -0
  48. package/lib/core/managers/AssetManager.d.ts +16 -0
  49. package/lib/core/managers/DomManager.d.ts +9 -0
  50. package/lib/core/managers/GameObjectManager.d.ts +17 -0
  51. package/lib/core/managers/IterationManager.d.ts +42 -0
  52. package/lib/core/managers/SceneManager.d.ts +21 -0
  53. package/lib/core/managers/TimeManager.d.ts +20 -0
  54. package/lib/gameObject/GameCamera.d.ts +17 -0
  55. package/lib/gameObject/SpacePointer.d.ts +8 -0
  56. package/lib/index.cjs.js +1 -1
  57. package/lib/index.d.ts +39 -38
  58. package/lib/index.esm.js +1 -1
  59. package/lib/index.js +1 -1
  60. package/lib/input/GamepadController.d.ts +48 -0
  61. package/lib/input/InputManager.d.ts +12 -0
  62. package/lib/input/KeyboardController.d.ts +12 -0
  63. package/lib/input/MouseController.d.ts +21 -0
  64. package/lib/input/TouchController.d.ts +13 -0
  65. package/lib/math/Rectangle.d.ts +50 -0
  66. package/lib/math/Rotation.d.ts +13 -0
  67. package/lib/math/Utils.d.ts +33 -0
  68. package/lib/math/Vector2.d.ts +114 -0
  69. package/lib/physics/PhysicsManager.d.ts +24 -0
  70. package/lib/physics/PhysicsManagerOld2.d.ts +34 -0
  71. package/lib/physics/collision/ColliderData.d.ts +15 -0
  72. package/lib/physics/collision/CollisionData.d.ts +8 -0
  73. package/lib/physics/collision/CollisionManager.d.ts +31 -0
  74. package/lib/physics/collision/CollisionManagerOld.d.ts +27 -0
  75. package/lib/physics/collision/QuadTree.d.ts +37 -0
  76. package/lib/physics/collision/collider/ICollider.d.ts +14 -0
  77. package/lib/physics/collision/collider/RectangleCollider.d.ts +32 -0
  78. package/lib/physics/collision/resolver/AABBResolver.d.ts +12 -0
  79. package/lib/physics/collision/resolver/CollisionResolution.d.ts +6 -0
  80. package/lib/physics/collision/resolver/CollisionResolver.d.ts +5 -0
  81. package/lib/physics/collision/resolver/ICollisionResolver.d.ts +5 -0
  82. package/lib/physics/collision/resolver/SatResolver.d.ts +15 -0
  83. package/lib/physics/collision/shape/Polygon.d.ts +31 -0
  84. package/lib/physics/collision/shape/Rectangle.d.ts +9 -0
  85. package/lib/physics/collision/shape/Shape.d.ts +17 -0
  86. package/lib/physics/collision-old/CollisionData.d.ts +8 -0
  87. package/lib/physics/collision-old/CollisionManager.d.ts +30 -0
  88. package/lib/physics/collision-old/QuadTree.d.ts +32 -0
  89. package/lib/physics/collision-old/collider/ICollider.d.ts +14 -0
  90. package/lib/physics/collision-old/collider/RectangleCollider.d.ts +32 -0
  91. package/lib/physics/collision-old/resolver/AABBResolver.d.ts +14 -0
  92. package/lib/physics/collision-old/resolver/ICollisionResolver.d.ts +5 -0
  93. package/lib/physics/collision-old/resolver/SatResolver.d.ts +14 -0
  94. package/lib/physics/collision-old/shape/Rectangle.d.ts +13 -0
  95. package/lib/physics/collision-old/shape/Shape.d.ts +28 -0
  96. package/lib/physics/rigodBody/RigidBodyData.d.ts +9 -0
  97. package/lib/physics/rigodBody/RigidBodyManager.d.ts +23 -0
  98. package/lib/rendering/CameraData.d.ts +9 -0
  99. package/lib/rendering/ContextRenderer.d.ts +6 -0
  100. package/lib/rendering/CullingService.d.ts +10 -0
  101. package/lib/rendering/FontAtlasFactory.d.ts +24 -0
  102. package/lib/rendering/RenderManager.d.ts +22 -0
  103. package/lib/rendering/context2D/Context2DRenderer.d.ts +18 -0
  104. package/lib/rendering/renderData/ColliderRenderData.d.ts +7 -0
  105. package/lib/rendering/renderData/GeometricRenderData.d.ts +12 -0
  106. package/lib/rendering/renderData/ImageRenderData.d.ts +22 -0
  107. package/lib/rendering/renderData/MaskRenderData.d.ts +9 -0
  108. package/lib/rendering/renderData/RenderData.d.ts +22 -0
  109. package/lib/rendering/renderData/TextRenderData.d.ts +22 -0
  110. package/lib/rendering/renderData/TilemapRenderData.d.ts +22 -0
  111. package/lib/rendering/webGL/ProgramFactory.d.ts +7 -0
  112. package/lib/rendering/webGL/ProgramManager.d.ts +26 -0
  113. package/lib/rendering/webGL/ShaderLoader.d.ts +3 -0
  114. package/lib/rendering/webGL/TextureFactory.d.ts +8 -0
  115. package/lib/rendering/webGL/TextureManager.d.ts +11 -0
  116. package/lib/rendering/webGL/Utils.d.ts +7 -0
  117. package/lib/rendering/webGL/WebGLRenderer.d.ts +36 -0
  118. package/lib/rendering/webGL/renderer/GeometricRenderer.d.ts +20 -0
  119. package/lib/rendering/webGL/renderer/ImageRenderer.d.ts +16 -0
  120. package/lib/rendering/webGL/renderer/MaskRenderer.d.ts +14 -0
  121. package/lib/rendering/webGL/renderer/TextRenderer.d.ts +21 -0
  122. package/lib/rendering/webGL/renderer/TilemapRenderer.d.ts +19 -0
  123. package/lib/rendering/webGL/shader/imageFragmentShader.d.ts +1 -0
  124. package/lib/rendering/webGL/shader/imageVertexShader.d.ts +1 -0
  125. package/lib/rendering/webGL/shader/legacy/imageFragmentShader.d.ts +1 -0
  126. package/lib/rendering/webGL/shader/legacy/imageVertexShader.d.ts +1 -0
  127. package/lib/utils/Container.d.ts +12 -0
  128. package/lib/utils/Exception.d.ts +4 -0
  129. package/lib/utils/UUID.d.ts +1 -0
  130. package/package.json +1 -1
  131. package/angry-pixel-v1.0.7.tgz +0 -0
@@ -0,0 +1,8 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ export declare class CollisionData {
3
+ private _penetration;
4
+ private _displacementDirection;
5
+ constructor(penetration: number, displacementDirection: Vector2);
6
+ get penetration(): number;
7
+ get displacementDirection(): Vector2;
8
+ }
@@ -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,9 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ import { ColliderData } from "../collision/ColliderData";
3
+ export interface RigidBodyData {
4
+ position: Vector2;
5
+ gravity: number;
6
+ velocity: Vector2;
7
+ layersToCollider: string[];
8
+ colliders: ColliderData[];
9
+ }
@@ -0,0 +1,23 @@
1
+ import { CollisionManager } from "../collision/CollisionManager";
2
+ import { RigidBodyData } from "./RigidBodyData";
3
+ export declare enum RigidBodyType {
4
+ Static = 0,
5
+ Dynamic = 1
6
+ }
7
+ export declare class RigidBodyManager {
8
+ private readonly collisionManager;
9
+ private rigidBodyData;
10
+ private cacheVelocity;
11
+ private cacheDisplacement;
12
+ private cacheNewDisplacement;
13
+ private cacheCollisions;
14
+ constructor(collisionManager: CollisionManager);
15
+ addRigidBodyData(data: RigidBodyData): void;
16
+ removeRigidBodyData(data: RigidBodyData): void;
17
+ update(deltaTime: number): void;
18
+ private applyGravity;
19
+ private applyVelocity;
20
+ private applyReposition;
21
+ private getCollisions;
22
+ clear(): void;
23
+ }
@@ -0,0 +1,9 @@
1
+ import { Rectangle } from "../math/Rectangle";
2
+ export declare class CameraData {
3
+ depth: number;
4
+ layers: string[];
5
+ originalViewportRect: Rectangle;
6
+ viewportRect: Rectangle;
7
+ worldSpaceRect: Rectangle;
8
+ zoom: number;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { CameraData } from "./CameraData";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ export interface ContextRenderer {
4
+ render(camera: CameraData, renderData: RenderData): void;
5
+ clearCanvas(color: string | null): void;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { CameraData } from "./CameraData";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ export declare class CullingService {
4
+ applyCulling(camera: CameraData, renderDataCollection: RenderData[]): RenderData[];
5
+ private cullSprite;
6
+ private cullTilemap;
7
+ private cullCollider;
8
+ private cullText;
9
+ private isTargetVisible;
10
+ }
@@ -0,0 +1,24 @@
1
+ export declare class FontAtlasFactory {
2
+ private bitmapSize;
3
+ private chars;
4
+ private fontAtlas;
5
+ private loading;
6
+ hasFontAtlas(fontFamily: string): boolean;
7
+ loadingFontAtlas(fontFamily: string): boolean;
8
+ getFontAtlas(fontFamily: string): FontAtlas;
9
+ asyncCreate(charRanges: number[], fontFamily: string, fontUrl?: string, bitmapSize?: number): void;
10
+ private loadFont;
11
+ private renderAtlas;
12
+ }
13
+ export declare class FontAtlas {
14
+ readonly name: string;
15
+ readonly canvas: HTMLCanvasElement;
16
+ readonly glyphsData: Map<string, GlyphData>;
17
+ constructor(name: string);
18
+ }
19
+ export interface GlyphData {
20
+ x: number;
21
+ y: number;
22
+ width: number;
23
+ height: number;
24
+ }
@@ -0,0 +1,22 @@
1
+ import { ContextRenderer } from "./ContextRenderer";
2
+ import { RenderData } from "./renderData/RenderData";
3
+ import { CameraData } from "./CameraData";
4
+ import { CullingService } from "./CullingService";
5
+ export declare class RenderManager {
6
+ private renderer;
7
+ private cullingService;
8
+ private canvasColor;
9
+ private debug;
10
+ private renderData;
11
+ private cameraData;
12
+ constructor(gameRenderer: ContextRenderer, cullingService: CullingService, canvasColor: string, debug?: boolean);
13
+ clearCanvas(): void;
14
+ addRenderData(renderData: RenderData): void;
15
+ addCameraData(cameraData: CameraData): void;
16
+ render(): void;
17
+ clearData(): void;
18
+ private renderByCamera;
19
+ private orderRendeData;
20
+ private updateFromCameraViewport;
21
+ private setPositionInViewport;
22
+ }
@@ -0,0 +1,18 @@
1
+ import { CameraData } from "../CameraData";
2
+ import { ContextRenderer } from "../ContextRenderer";
3
+ import { RenderData } from "../renderData/RenderData";
4
+ export declare class Context2DRenderer implements ContextRenderer {
5
+ private canvas;
6
+ private canvasContext;
7
+ private imagePosition;
8
+ constructor(canvas: HTMLCanvasElement);
9
+ clearCanvas(color?: string | null): void;
10
+ render(camera: CameraData, renderData: RenderData): void;
11
+ private renderImage;
12
+ private renderTilemap;
13
+ private renderText;
14
+ private renderCollider;
15
+ private applyZoom;
16
+ private updateRenderPosition;
17
+ private centerImage;
18
+ }
@@ -0,0 +1,7 @@
1
+ import { Shape } from "../../physics/collision/shape/Shape";
2
+ import { RenderData, RenderDataType } from "./RenderData";
3
+ export declare class ColliderRenderData extends RenderData {
4
+ type: RenderDataType;
5
+ color: string;
6
+ shape: Shape;
7
+ }
@@ -0,0 +1,12 @@
1
+ import { Rectangle } from "../../math/Rectangle";
2
+ import { RenderData, RenderDataType } from "./RenderData";
3
+ declare type Geometric = Rectangle;
4
+ declare type GeometricType = "Rectangle";
5
+ export declare class GeometricRenderData extends RenderData {
6
+ type: RenderDataType;
7
+ color: string;
8
+ geometricType: GeometricType;
9
+ geometric: Geometric;
10
+ getGeometric<T extends Geometric>(): T;
11
+ }
12
+ export {};
@@ -0,0 +1,22 @@
1
+ import { RenderData, RenderDataType } from "./RenderData";
2
+ export interface Slice {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export declare class ImageRenderData extends RenderData {
9
+ type: RenderDataType;
10
+ image: HTMLImageElement;
11
+ width: number;
12
+ height: number;
13
+ slice: Slice;
14
+ flipHorizontal: boolean;
15
+ flipVertical: boolean;
16
+ rotation: number;
17
+ smooth: boolean;
18
+ alpha: number;
19
+ maskColor: string;
20
+ maskColorMix: number;
21
+ tintColor: string;
22
+ }
@@ -0,0 +1,9 @@
1
+ import { RenderData, RenderDataType } from "./RenderData";
2
+ export declare class MaskRenderData extends RenderData {
3
+ type: RenderDataType;
4
+ width: number;
5
+ height: number;
6
+ color: string;
7
+ rotation: number;
8
+ alpha: number;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { Rectangle } from "../../math/Rectangle";
2
+ import { Vector2 } from "../../math/Vector2";
3
+ export declare enum RenderDataType {
4
+ Image = 0,
5
+ Text = 1,
6
+ Collider = 2,
7
+ Tilemap = 3,
8
+ Mask = 4
9
+ }
10
+ export declare abstract class RenderData {
11
+ abstract type: RenderDataType;
12
+ ui: boolean;
13
+ debug: boolean;
14
+ layer: string;
15
+ viwportRect: Rectangle;
16
+ private _position;
17
+ get position(): Vector2;
18
+ set position(position: Vector2);
19
+ private _positionInViewport;
20
+ get positionInViewport(): Vector2;
21
+ set positionInViewport(position: Vector2);
22
+ }
@@ -0,0 +1,22 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ import { RenderData, RenderDataType } from "./RenderData";
3
+ export declare type Orientation = "rightUp" | "rightDown" | "center";
4
+ export declare class TextRenderData extends RenderData {
5
+ type: RenderDataType;
6
+ color: string;
7
+ text: string;
8
+ fontFamily: string;
9
+ fontUrl: string;
10
+ fontSize: number;
11
+ lineSeparation: number;
12
+ letterSpacing: number;
13
+ bitmapSize: number;
14
+ charRanges: number[];
15
+ smooth: boolean;
16
+ bitmapOffset: Vector2;
17
+ width: number;
18
+ height: number;
19
+ rotation: number;
20
+ opacity: number;
21
+ orientation: Orientation;
22
+ }
@@ -0,0 +1,22 @@
1
+ import { Vector2 } from "../../math/Vector2";
2
+ import { Tile } from "../../component/rendering/tilemap/Tile";
3
+ import { RenderData, RenderDataType } from "./RenderData";
4
+ export declare class TileRenderData {
5
+ tile: Tile;
6
+ position: Vector2;
7
+ positionInViewport: Vector2;
8
+ flipHorizontal: boolean;
9
+ flipVertical: boolean;
10
+ }
11
+ export declare class TilemapRenderData extends RenderData {
12
+ type: RenderDataType;
13
+ image: HTMLImageElement;
14
+ smooth: boolean;
15
+ alpha: number;
16
+ tilesData: TileRenderData[];
17
+ tilesToRender: TileRenderData[];
18
+ tileWidth: number;
19
+ tileHeight: number;
20
+ textureCorrection: number;
21
+ tintColor: string;
22
+ }
@@ -0,0 +1,7 @@
1
+ import { ShaderLoader } from "./ShaderLoader";
2
+ export declare class ProgramFactory {
3
+ private readonly shaderLoader;
4
+ constructor(shaderLoader: ShaderLoader);
5
+ create(gl: WebGLRenderingContext, vertexShaderSource: string, fragmentShaderSource: string): WebGLProgram;
6
+ private link;
7
+ }
@@ -0,0 +1,26 @@
1
+ import { ProgramFactory } from "./ProgramFactory";
2
+ import { WebGLContextVersion } from "./WebGLRenderer";
3
+ export declare class ProgramManager {
4
+ private gl;
5
+ private contextVersion;
6
+ private programFactory;
7
+ private program;
8
+ positionBuffer: WebGLBuffer;
9
+ textureBuffer: WebGLBuffer;
10
+ positionCoordsAttr: GLint;
11
+ texCoordsAttr: GLint;
12
+ modelMatrixUniform: WebGLUniformLocation;
13
+ projectionMatrixUniform: WebGLUniformLocation;
14
+ textureMatrixUniform: WebGLUniformLocation;
15
+ renderTextureUniform: WebGLUniformLocation;
16
+ textureUniform: WebGLUniformLocation;
17
+ solidColorUniform: WebGLUniformLocation;
18
+ useTintColorUniform: WebGLUniformLocation;
19
+ tintColorUniform: WebGLUniformLocation;
20
+ useMaskColorUniform: WebGLUniformLocation;
21
+ maskColorUniform: WebGLUniformLocation;
22
+ maskColorMixUniform: WebGLUniformLocation;
23
+ alphaUniform: WebGLUniformLocation;
24
+ constructor(programFactory: ProgramFactory, contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement);
25
+ loadProgram(): void;
26
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ShaderLoader {
2
+ load(gl: WebGLRenderingContext, type: number, source: string): WebGLShader;
3
+ }
@@ -0,0 +1,8 @@
1
+ import { WebGLContextVersion } from "./WebGLRenderer";
2
+ export declare class TextureFactory {
3
+ private gl;
4
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement);
5
+ createFromImage(image: HTMLImageElement, smooth?: boolean, texture?: WebGLTexture): WebGLTexture;
6
+ createFromCanvas(canvas: HTMLCanvasElement, smooth?: boolean, texture?: WebGLTexture): WebGLTexture;
7
+ private create;
8
+ }
@@ -0,0 +1,11 @@
1
+ import { TextureFactory } from "./TextureFactory";
2
+ export declare class TextureManager {
3
+ private textureFactory;
4
+ private textures;
5
+ constructor(textureFactory: TextureFactory);
6
+ getTexture(name: string): WebGLTexture | null;
7
+ getOrCreateTextureFromImage(image: HTMLImageElement, smooth?: boolean): WebGLTexture;
8
+ createTextureFromImage(image: HTMLImageElement, smooth?: boolean): WebGLTexture;
9
+ getOrCreateTextureFromCanvas(name: string, canvas: HTMLCanvasElement, smooth?: boolean): WebGLTexture;
10
+ createTextureFromCanvas(name: string, canvas: HTMLCanvasElement, smooth?: boolean): WebGLTexture;
11
+ }
@@ -0,0 +1,7 @@
1
+ export declare type RGBA = {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ a: number;
6
+ };
7
+ export declare const hexToRgba: (hex: string) => RGBA | null;
@@ -0,0 +1,36 @@
1
+ import { CameraData } from "../CameraData";
2
+ import { ContextRenderer } from "../ContextRenderer";
3
+ import { RenderData } from "../renderData/RenderData";
4
+ import { TextureManager } from "./TextureManager";
5
+ import { ImageRenderer } from "./renderer/ImageRenderer";
6
+ import { FontAtlasFactory } from "../FontAtlasFactory";
7
+ import { ProgramManager } from "./ProgramManager";
8
+ import { TextRenderer } from "./renderer/TextRenderer";
9
+ import { GeometricRenderer } from "./renderer/GeometricRenderer";
10
+ import { TilemapRenderer } from "./renderer/TilemapRenderer";
11
+ import { MaskRenderer } from "./renderer/MaskRenderer";
12
+ export declare enum WebGLContextVersion {
13
+ LegacyWebGL = "webgl",
14
+ WebGL2 = "webgl2"
15
+ }
16
+ export declare type LastRender = "image" | "text" | "geometric" | "tilemap" | "mask";
17
+ export declare class WebGLRenderer implements ContextRenderer {
18
+ private readonly canvas;
19
+ private readonly gl;
20
+ private readonly textureManager;
21
+ private readonly fontAtlasFactory;
22
+ private readonly imageRenderer;
23
+ private readonly textRenderer;
24
+ private readonly geometricRenderer;
25
+ private readonly tilemapRenderer;
26
+ private readonly maskRenderer;
27
+ private lastRender;
28
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager, textureManager: TextureManager, fontAtlasFactory: FontAtlasFactory, imageRenderer: ImageRenderer, tilemapRenderer: TilemapRenderer, textRenderer: TextRenderer, geometricRenderer: GeometricRenderer, maskRenderer: MaskRenderer);
29
+ clearCanvas(color: string): void;
30
+ render(camera: CameraData, renderData: RenderData): void;
31
+ private renderImage;
32
+ private renderTilemap;
33
+ private renderText;
34
+ private renderMask;
35
+ private fontAtlasLoaded;
36
+ }
@@ -0,0 +1,20 @@
1
+ import { Rectangle } from "../../../math/Rectangle";
2
+ import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
3
+ import { ColliderRenderData } from "../../renderData/ColliderRenderData";
4
+ import { ProgramManager } from "../ProgramManager";
5
+ export declare class GeometricRenderer {
6
+ private gl;
7
+ private programManager;
8
+ private projectionMatrix;
9
+ private modelMatrix;
10
+ private textureMatrix;
11
+ private readonly vertices;
12
+ private readonly texVertices;
13
+ private lastVertices;
14
+ private lastRender;
15
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager);
16
+ renderCollider(viewportRect: Rectangle, renderData: ColliderRenderData, lastRender: LastRender): void;
17
+ private renderPolygon;
18
+ private generateVerticesKey;
19
+ private generatePolygonVertices;
20
+ }
@@ -0,0 +1,16 @@
1
+ import { Rectangle } from "../../../math/Rectangle";
2
+ import { ImageRenderData } from "../../renderData/ImageRenderData";
3
+ import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
4
+ import { ProgramManager } from "../ProgramManager";
5
+ export declare class ImageRenderer {
6
+ private gl;
7
+ private programManager;
8
+ private projectionMatrix;
9
+ private modelMatrix;
10
+ private textureMatrix;
11
+ private posVertices;
12
+ private texVertices;
13
+ private lastTexture;
14
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager);
15
+ render(viewportRect: Rectangle, texture: WebGLTexture, renderData: ImageRenderData, lastRender: LastRender): void;
16
+ }
@@ -0,0 +1,14 @@
1
+ import { Rectangle } from "../../../math/Rectangle";
2
+ import { MaskRenderData } from "../../renderData/MaskRenderData";
3
+ import { ProgramManager } from "../ProgramManager";
4
+ import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
5
+ export declare class MaskRenderer {
6
+ private gl;
7
+ private programManager;
8
+ private projectionMatrix;
9
+ private modelMatrix;
10
+ private textureMatrix;
11
+ private readonly vertices;
12
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager);
13
+ render(viewportRect: Rectangle, renderData: MaskRenderData, lastRender: LastRender): void;
14
+ }
@@ -0,0 +1,21 @@
1
+ import { Rectangle } from "../../../math/Rectangle";
2
+ import { LastRender, WebGLContextVersion } from "../WebGLRenderer";
3
+ import { FontAtlas } from "../../FontAtlasFactory";
4
+ import { TextRenderData } from "../../renderData/TextRenderData";
5
+ import { ProgramManager } from "../ProgramManager";
6
+ export declare class TextRenderer {
7
+ private gl;
8
+ private programManager;
9
+ private projectionMatrix;
10
+ private modelMatrix;
11
+ private textureMatrix;
12
+ private posVertices;
13
+ private texVertices;
14
+ private posVerticesSize;
15
+ private lastTexture;
16
+ constructor(contextVersion: WebGLContextVersion, canvas: HTMLCanvasElement, programManager: ProgramManager);
17
+ render(viewportRect: Rectangle, texture: WebGLTexture, fontAtlas: FontAtlas, renderData: TextRenderData, lastRender: LastRender): void;
18
+ private generateTextVertices;
19
+ private getTranslationForOrientation;
20
+ private getDimensions;
21
+ }