angry-pixel 1.2.5 → 1.2.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 (156) hide show
  1. package/lib/index.cjs.js +2 -1
  2. package/lib/index.cjs.js.map +1 -0
  3. package/lib/index.d.ts +5 -41
  4. package/lib/index.esm.js +2 -1
  5. package/lib/index.esm.js.map +1 -0
  6. package/lib/index.js +2 -1
  7. package/lib/index.js.map +1 -0
  8. package/package.json +6 -30
  9. package/.github/workflows/analyzeCode.yml +0 -25
  10. package/.github/workflows/buildCode.yml +0 -23
  11. package/.github/workflows/main.yml +0 -15
  12. package/.github/workflows/setupNode.yml +0 -40
  13. package/api-docs/.nojekyll +0 -1
  14. package/api-docs/assets/highlight.css +0 -92
  15. package/api-docs/assets/main.js +0 -59
  16. package/api-docs/assets/navigation.js +0 -1
  17. package/api-docs/assets/search.js +0 -1
  18. package/api-docs/assets/style.css +0 -1383
  19. package/api-docs/classes/Animator.html +0 -128
  20. package/api-docs/classes/AudioPlayer.html +0 -131
  21. package/api-docs/classes/BallCollider.html +0 -132
  22. package/api-docs/classes/BoxCollider.html +0 -136
  23. package/api-docs/classes/Button.html +0 -125
  24. package/api-docs/classes/Camera.html +0 -114
  25. package/api-docs/classes/Component.html +0 -106
  26. package/api-docs/classes/EdgeCollider.html +0 -134
  27. package/api-docs/classes/Game.html +0 -24
  28. package/api-docs/classes/GameCamera.html +0 -163
  29. package/api-docs/classes/GameObject.html +0 -149
  30. package/api-docs/classes/GamepadController.html +0 -11
  31. package/api-docs/classes/GamepadData.html +0 -81
  32. package/api-docs/classes/KeyboardController.html +0 -43
  33. package/api-docs/classes/MaskRenderer.html +0 -119
  34. package/api-docs/classes/MouseController.html +0 -14
  35. package/api-docs/classes/PhysicsComponent.html +0 -107
  36. package/api-docs/classes/PolygonCollider.html +0 -134
  37. package/api-docs/classes/PreRenderComponent.html +0 -107
  38. package/api-docs/classes/Rectangle.html +0 -30
  39. package/api-docs/classes/RigidBody.html +0 -123
  40. package/api-docs/classes/Rotation.html +0 -5
  41. package/api-docs/classes/Scene.html +0 -73
  42. package/api-docs/classes/SpacePointer.html +0 -147
  43. package/api-docs/classes/Sprite.html +0 -20
  44. package/api-docs/classes/SpriteRenderer.html +0 -134
  45. package/api-docs/classes/TextRenderer.html +0 -138
  46. package/api-docs/classes/TiledTilemapRenderer.html +0 -127
  47. package/api-docs/classes/TilemapCollider.html +0 -124
  48. package/api-docs/classes/TilemapRenderer.html +0 -126
  49. package/api-docs/classes/TouchController.html +0 -8
  50. package/api-docs/classes/Transform.html +0 -124
  51. package/api-docs/classes/Vector2.html +0 -65
  52. package/api-docs/classes/VideoRenderer.html +0 -145
  53. package/api-docs/enums/BroadPhaseMethods.html +0 -3
  54. package/api-docs/enums/ButtonType.html +0 -3
  55. package/api-docs/enums/CollisionMethods.html +0 -3
  56. package/api-docs/enums/RigidBodyType.html +0 -4
  57. package/api-docs/enums/TextOrientation.html +0 -5
  58. package/api-docs/enums/TilemapOrientation.html +0 -5
  59. package/api-docs/functions/between.html +0 -5
  60. package/api-docs/functions/clamp.html +0 -5
  61. package/api-docs/functions/fixedRound.html +0 -4
  62. package/api-docs/functions/randomFloat.html +0 -4
  63. package/api-docs/functions/randomInt.html +0 -4
  64. package/api-docs/functions/range.html +0 -5
  65. package/api-docs/index.html +0 -37
  66. package/api-docs/interfaces/AnimationConfig.html +0 -10
  67. package/api-docs/interfaces/AnimatorOptions.html +0 -6
  68. package/api-docs/interfaces/AudioPlayerOptions.html +0 -8
  69. package/api-docs/interfaces/BallColliderOptions.html +0 -16
  70. package/api-docs/interfaces/BoxColliderOptions.html +0 -20
  71. package/api-docs/interfaces/ButtonOptions.html +0 -16
  72. package/api-docs/interfaces/ColliderComponent.html +0 -14
  73. package/api-docs/interfaces/CollisionData.html +0 -10
  74. package/api-docs/interfaces/EdgeColliderOptions.html +0 -18
  75. package/api-docs/interfaces/GameConfig.html +0 -28
  76. package/api-docs/interfaces/IAssetManager.html +0 -40
  77. package/api-docs/interfaces/ICollider.html +0 -11
  78. package/api-docs/interfaces/ICollision.html +0 -4
  79. package/api-docs/interfaces/ICollisionResolution.html +0 -4
  80. package/api-docs/interfaces/IDomManager.html +0 -6
  81. package/api-docs/interfaces/IGameObjectManager.html +0 -49
  82. package/api-docs/interfaces/IInputManager.html +0 -12
  83. package/api-docs/interfaces/IPhysicsManager.html +0 -8
  84. package/api-docs/interfaces/IRenderManager.html +0 -7
  85. package/api-docs/interfaces/ISceneManager.html +0 -18
  86. package/api-docs/interfaces/ITimeManager.html +0 -16
  87. package/api-docs/interfaces/MaskRendererOptions.html +0 -18
  88. package/api-docs/interfaces/PolygonColliderOptions.html +0 -18
  89. package/api-docs/interfaces/RigidBodyOptions.html +0 -17
  90. package/api-docs/interfaces/Slice.html +0 -5
  91. package/api-docs/interfaces/SpriteConfig.html +0 -10
  92. package/api-docs/interfaces/SpriteRendererOptions.html +0 -32
  93. package/api-docs/interfaces/TextRendererOptions.html +0 -38
  94. package/api-docs/interfaces/TiledChunk.html +0 -7
  95. package/api-docs/interfaces/TiledLayer.html +0 -17
  96. package/api-docs/interfaces/TiledTilemap.html +0 -9
  97. package/api-docs/interfaces/TiledTilemapRendererOptions.html +0 -18
  98. package/api-docs/interfaces/TilemapColliderOptions.html +0 -12
  99. package/api-docs/interfaces/TilemapRendererOptions.html +0 -22
  100. package/api-docs/interfaces/Tileset.html +0 -13
  101. package/api-docs/interfaces/TouchInteraction.html +0 -6
  102. package/api-docs/interfaces/VideoRendererOptions.html +0 -34
  103. package/api-docs/modules.html +0 -85
  104. package/api-docs/types/CollisionMatrix.html +0 -1
  105. package/lib/component/Animation.d.ts +0 -12
  106. package/lib/component/Animator.d.ts +0 -139
  107. package/lib/component/AudioPlayer.d.ts +0 -97
  108. package/lib/component/Button.d.ts +0 -117
  109. package/lib/component/Camera.d.ts +0 -47
  110. package/lib/component/RigidBody.d.ts +0 -97
  111. package/lib/component/Sprite.d.ts +0 -22
  112. package/lib/component/Transform.d.ts +0 -65
  113. package/lib/component/collider/BallCollider.d.ts +0 -73
  114. package/lib/component/collider/BoxCollider.d.ts +0 -90
  115. package/lib/component/collider/Collider.d.ts +0 -82
  116. package/lib/component/collider/EdgeCollider.d.ts +0 -81
  117. package/lib/component/collider/PolygonCollider.d.ts +0 -92
  118. package/lib/component/collider/TilemapCollider.d.ts +0 -71
  119. package/lib/component/rendering/MaskRenderer.d.ts +0 -83
  120. package/lib/component/rendering/Sprite.d.ts +0 -61
  121. package/lib/component/rendering/SpriteRenderer.d.ts +0 -133
  122. package/lib/component/rendering/TextRenderer.d.ts +0 -145
  123. package/lib/component/rendering/TiledTilemapRenderer.d.ts +0 -186
  124. package/lib/component/rendering/TilemapRenderer.d.ts +0 -170
  125. package/lib/component/rendering/VideoRenderer.d.ts +0 -158
  126. package/lib/core/Component.d.ts +0 -203
  127. package/lib/core/Game.d.ts +0 -89
  128. package/lib/core/GameActor.d.ts +0 -131
  129. package/lib/core/GameConfig.d.ts +0 -61
  130. package/lib/core/GameObject.d.ts +0 -196
  131. package/lib/core/Scene.d.ts +0 -45
  132. package/lib/core/facades/AssetManagerFacade.d.ts +0 -51
  133. package/lib/core/facades/DomManagerFacade.d.ts +0 -8
  134. package/lib/core/facades/GameObjectManagerFacade.d.ts +0 -70
  135. package/lib/core/facades/InputManagerFacade.d.ts +0 -13
  136. package/lib/core/facades/SceneManagerFacade.d.ts +0 -18
  137. package/lib/core/facades/TimeManagerFacade.d.ts +0 -11
  138. package/lib/core/ioc/Config.d.ts +0 -4
  139. package/lib/core/managers/AssetManager.d.ts +0 -95
  140. package/lib/core/managers/DomManager.d.ts +0 -23
  141. package/lib/core/managers/GameObjectManager.d.ts +0 -117
  142. package/lib/core/managers/HeadlessIterationManager.d.ts +0 -30
  143. package/lib/core/managers/IterationManager.d.ts +0 -60
  144. package/lib/core/managers/SceneManager.d.ts +0 -59
  145. package/lib/core/managers/TimeManager.d.ts +0 -73
  146. package/lib/gameObject/GameCamera.d.ts +0 -38
  147. package/lib/gameObject/SpacePointer.d.ts +0 -15
  148. package/lib/input/GamepadController.d.ts +0 -225
  149. package/lib/input/InputManager.d.ts +0 -37
  150. package/lib/input/KeyboardController.d.ts +0 -81
  151. package/lib/input/MouseController.d.ts +0 -56
  152. package/lib/input/TouchController.d.ts +0 -45
  153. package/lib/utils/Container.d.ts +0 -13
  154. package/lib/utils/Exception.d.ts +0 -5
  155. package/lib/utils/UUID.d.ts +0 -1
  156. package/typedoc.json +0 -13
@@ -1,71 +0,0 @@
1
- import { ITilemapRenderer } from "../rendering/TilemapRenderer";
2
- import { BaseCollider } from "./Collider";
3
- import { InitOptions } from "../../core/GameActor";
4
- /**
5
- * TilemapCollider configuration options
6
- * @public
7
- * @category Components
8
- * @example
9
- * ```js
10
- * this.addComponent(TilemapCollider, {
11
- * tilemapRenderer: this.getComponent(TilemapRenderer),
12
- * layer: "Foreground",
13
- * debug: false,
14
- * composite: true,
15
- * });
16
- * ```
17
- */
18
- export interface TilemapColliderOptions extends InitOptions {
19
- /** TilemapRenderer from which the tiles information will be obtained to generate the colliders */
20
- tilemapRenderer: ITilemapRenderer;
21
- /** Generate colliders that represent the outer lines of the tile map */
22
- composite?: boolean;
23
- /** Collision layer, if it's not setted, it uses the game object layer */
24
- layer?: string;
25
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
26
- debug?: boolean;
27
- }
28
- /**
29
- * Generates rectangle colliders for the map edge tiles (or lines if composite is TRUE).
30
- * **Limitations:** At the moment, it is not possible to modify the shape, position, scale and rotation of the collider once it has been generated.
31
- * @public
32
- * @category Components
33
- * @example
34
- * ```js
35
- * this.addComponent(TilemapCollider, {
36
- * tilemapRenderer: this.getComponent(TilemapRenderer),
37
- * });
38
- * ```
39
- * @example
40
- * ```js
41
- * this.addComponent(TilemapCollider, {
42
- * tilemapRenderer: this.getComponent(TilemapRenderer),
43
- * layer: "Foreground",
44
- * debug: false,
45
- * composite: true,
46
- * });
47
- * ```
48
- */
49
- export declare class TilemapCollider extends BaseCollider {
50
- /** TilemapRenderer from which the tiles information will be obtained to generate the colliders */
51
- private tilemapRenderer;
52
- /** If debug mode is enabled, the collider shape is rendered using the object's render layer */
53
- private debug;
54
- /** Generate colliders that represent the outer lines of the tile map */
55
- private composite;
56
- private scaledWidth;
57
- private scaledHeight;
58
- private scaledTileWidth;
59
- private scaledTileHeight;
60
- private position;
61
- protected init(config: TilemapColliderOptions): void;
62
- private useBoxColliders;
63
- private needsCollider;
64
- private useLineColliders;
65
- private hasTile;
66
- private addLineCollider;
67
- private getNeighbors;
68
- protected updateRealSize(): void;
69
- protected updatePosition(): void;
70
- protected updateColliders(): void;
71
- }
@@ -1,83 +0,0 @@
1
- import { RenderComponent } from "../../core/Component";
2
- import { Vector2, Rotation } from "angry-pixel-math";
3
- /**
4
- * MaskRenderer configuration options.
5
- * @public
6
- * @category Components
7
- * @example
8
- * ```js
9
- * this.addComponent(MaskRenderer, {
10
- * width: 32,
11
- * height: 32,
12
- * color: "#000000",
13
- * offset: new Vector2(0, 0),
14
- * rotation: new Rotation(0),
15
- * opacity: 1,
16
- * layer: "Mask",
17
- * });
18
- * ```
19
- */
20
- export interface MaskRendererOptions {
21
- /** Mask width in pixels */
22
- width: number;
23
- /** Mask height in pixels */
24
- height: number;
25
- /** The color of the mask */
26
- color: string;
27
- /** X-axis and Y-axis offset */
28
- offset?: Vector2;
29
- /** Mask rotation (degrees or radians) */
30
- rotation?: Rotation;
31
- /** Change the opacity between 1 and 0 */
32
- opacity?: number;
33
- /** The render layer */
34
- layer?: string;
35
- }
36
- /**
37
- * Renders a rectangle based on width, height and color
38
- * @public
39
- * @category Components
40
- * @example
41
- * ```js
42
- * this.addComponent(MaskRenderer, {
43
- * width: 32,
44
- * height: 32,
45
- * color: "#000000",
46
- * });
47
- * ```
48
- * @example
49
- * ```js
50
- * this.addComponent(MaskRenderer, {
51
- * width: 32,
52
- * height: 32,
53
- * color: "#000000",
54
- * offset: new Vector2(0, 0),
55
- * rotation: new Rotation(0),
56
- * opacity: 1,
57
- * layer: "Mask",
58
- * });
59
- * ```
60
- */
61
- export declare class MaskRenderer extends RenderComponent {
62
- /** Mask width in pixels */
63
- width: number;
64
- /** Mask height in pixels */
65
- height: number;
66
- /** The color of the mask */
67
- color: string;
68
- /** X-axis and Y-axis offset */
69
- offset: Vector2;
70
- /** Mask rotation (degrees or radians) */
71
- rotation: Rotation;
72
- /** Change the opacity between 1 and 0 */
73
- opacity: number;
74
- /** The render layer */
75
- layer: string;
76
- private renderData;
77
- private innerPosition;
78
- private scaledOffset;
79
- protected init(config: MaskRendererOptions): void;
80
- protected update(): void;
81
- private calculateRenderPosition;
82
- private translateRenderPosition;
83
- }
@@ -1,61 +0,0 @@
1
- import { Slice } from "angry-pixel-2d-renderer";
2
- export { Slice };
3
- /**
4
- * Sprite configuration options
5
- * @public
6
- * @category Components
7
- * @example
8
- * ```js
9
- * const sprite = new Sprite({
10
- * image: this.assetManager.getImage("image.png"),
11
- * slice: {x: 0, y:0, width: 16, height: 16},
12
- * smooth: false
13
- * });
14
- * ```
15
- */
16
- export interface SpriteConfig {
17
- /** The image element to render */
18
- image: HTMLImageElement;
19
- /** Cut the image based on straight coordinates starting from the top left downward */
20
- slice?: Slice;
21
- /** Smoothing pixels (not recommended for pixel art) */
22
- smooth?: boolean;
23
- }
24
- /**
25
- * The Sprite is an object that is composed of the Image element and allow to slice it and smooth its pixels.
26
- * @public
27
- * @category Components
28
- * @example
29
- * ```js
30
- * const sprite = new Sprite({image: this.assetManager.getImage("image.png")});
31
- * ```
32
- * @example
33
- * ```js
34
- * const sprite = new Sprite({
35
- * image: this.assetManager.getImage("image.png"),
36
- * slice: {x: 0, y:0, width: 16, height: 16},
37
- * smooth: false
38
- * });
39
- * ```
40
- */
41
- export declare class Sprite {
42
- /** The image element to render */
43
- readonly image: HTMLImageElement;
44
- /** Cut the image based on straight coordinates starting from the top left downward */
45
- readonly slice: Slice;
46
- /** Smoothing pixels (not recommended for pixel art) */
47
- readonly smooth: boolean;
48
- private _width;
49
- private _height;
50
- private _loaded;
51
- /**
52
- * @param config The sprite configuration options
53
- */
54
- constructor(config: SpriteConfig);
55
- /** The image width */
56
- get width(): number;
57
- /** The image height */
58
- get height(): number;
59
- /** TRUE if the image is loaded */
60
- get loaded(): boolean;
61
- }
@@ -1,133 +0,0 @@
1
- import { RenderComponent } from "../../core/Component";
2
- import { Sprite } from "./Sprite";
3
- import { Rotation, Vector2 } from "angry-pixel-math";
4
- /**
5
- * SpriteRenderer configuration options.
6
- * @public
7
- * @category Components
8
- * @example
9
- * ```js
10
- * this.addComponent(SpriteRenderer, {
11
- * sprite: new Sprite({image: this.assetManager.getImage("image.png")}),
12
- * offset: new Vector2(0, 0),
13
- * flipHorizontal: false,
14
- * flipVertical: false,
15
- * rotation: new Rotation(0),
16
- * opacity: 1,
17
- * tiled: new Vector2(1,1),
18
- * maskColor: "#FF0000",
19
- * maskColorMix: 0,
20
- * tintColor: "#00FF00",
21
- * layer: "Background",
22
- * scale: new Vector2(1,1),
23
- * width: 16,
24
- * height: 16
25
- * });
26
- * ```
27
- */
28
- export interface SpriteRendererOptions {
29
- /** The sprite to render */
30
- sprite?: Sprite;
31
- /** X-axis and Y-axis offset */
32
- offset?: Vector2;
33
- /** Image rotation (degrees or radians) */
34
- rotation?: Rotation;
35
- /** Flip the image horizontally */
36
- flipHorizontal?: boolean;
37
- /** Flip the image vertically */
38
- flipVertical?: boolean;
39
- /** Change the opacity between 1 and 0 */
40
- opacity?: number;
41
- /** Render the image in tiles */
42
- tiled?: Vector2;
43
- /** Define a mask color for the image */
44
- maskColor?: string;
45
- /** Define the opacity of the mask color between 1 and 0 */
46
- maskColorMix?: number;
47
- /** Define a color for tinting the sprite image */
48
- tintColor?: string;
49
- /** The render layer */
50
- layer?: string;
51
- /** Scale the image based on a vector */
52
- scale?: Vector2;
53
- /** Overwrite the original image width */
54
- width?: number;
55
- /** Overwrite the original image height */
56
- height?: number;
57
- }
58
- /**
59
- * The SpriteRenderer component renders the Sprite and allows to configure options such as opacity, offser, color, etc.
60
- * @public
61
- * @category Components
62
- * @example
63
- * ```js
64
- * this.addComponent(SpriteRenderer, {
65
- * sprite: new Sprite({image: this.assetManager.getImage("image.png")})
66
- * });
67
- * ```
68
- * @example
69
- * ```js
70
- * this.addComponent(SpriteRenderer, {
71
- * sprite: new Sprite({image: this.assetManager.getImage("image.png")}),
72
- * offset: new Vector2(0, 0),
73
- * flipHorizontal: false,
74
- * flipVertical: false,
75
- * rotation: new Rotation(0),
76
- * opacity: 1,
77
- * tiled: new Vector2(1,1),
78
- * maskColor: "#FF0000",
79
- * maskColorMix: 0,
80
- * tintColor: "#00FF00",
81
- * layer: "Background",
82
- * scale: new Vector2(1,1),
83
- * width: 16,
84
- * height: 16
85
- * });
86
- * ```
87
- */
88
- export declare class SpriteRenderer extends RenderComponent {
89
- private readonly spriteDefaultScale;
90
- /** The sprite to render */
91
- sprite: Sprite;
92
- /** X-axis and Y-axis offset */
93
- offset: Vector2;
94
- /** Flip the image horizontally */
95
- flipHorizontal: boolean;
96
- /** Flip the image vertically */
97
- flipVertical: boolean;
98
- /** Image rotation (degrees or radians) */
99
- rotation: Rotation;
100
- /** Change the opacity between 1 and 0 */
101
- opacity: number;
102
- /** Define a mask color for the image */
103
- maskColor: string;
104
- /** Define the opacity of the mask color between 1 and 0 */
105
- maskColorMix: number;
106
- /** Define a color for tinting the sprite image */
107
- tintColor: string;
108
- /** The render layer */
109
- layer: string;
110
- /** Scale the image based on a vector */
111
- scale: Vector2;
112
- /** Overwrite the original image width */
113
- width: number;
114
- /** Overwrite the original image height */
115
- height: number;
116
- private _tiled;
117
- private renderData;
118
- private innerPosition;
119
- private cachePosition;
120
- private cacheRenderPosition;
121
- private scaledOffset;
122
- private cacheScale;
123
- protected init(config?: SpriteRendererOptions): void;
124
- /** Render the image in tiles */
125
- get tiled(): Vector2;
126
- /** Renders the image in tiles */
127
- set tiled(tiled: Vector2);
128
- protected update(): void;
129
- private updateRenderDataArray;
130
- private updateRenderData;
131
- private calculateRenderPosition;
132
- private translateRenderPosition;
133
- }
@@ -1,145 +0,0 @@
1
- import { RenderComponent } from "../../core/Component";
2
- import { Rotation, Vector2 } from "angry-pixel-math";
3
- import { TextOrientation } from "angry-pixel-2d-renderer";
4
- export { TextOrientation };
5
- /**
6
- * TextRenderer configuration options.
7
- * @public
8
- * @category Components
9
- * @example
10
- * ```js
11
- * this.addComponent(TextRenderer, {
12
- * text: "Hello world",
13
- * font: "Impact",
14
- * fontSize: 16,
15
- * width: 320,
16
- * height: 32,
17
- * color: "#FF0000",
18
- * offset: new Vector2(0, 0),
19
- * lineSeparation: 1,
20
- * letterSpacing: 1,
21
- * charRanges: [32, 126, 161, 255],
22
- * smooth: false,
23
- * rotation: new Rotation(0),
24
- * opacity: 1,
25
- * orientation: TextOrientation.RightDown
26
- * bitmapMargin: new Vector2(0, 0),
27
- * bitmapSpacing: new Vector2(0, 0),
28
- * });
29
- * ```
30
- */
31
- export interface TextRendererOptions {
32
- /** The text to render */
33
- text: string;
34
- /** The font family to use */
35
- font: FontFace | string;
36
- /** The size of the font in pixels */
37
- fontSize: number;
38
- /** The text color */
39
- color: string;
40
- /** The width of the invisible box where the text is rendered */
41
- width: number;
42
- /** The height of the invisible box where the text is rendered */
43
- height: number;
44
- /** The separation between lines in pixels */
45
- lineSeparation?: number;
46
- /** The space between chars in pixels */
47
- letterSpacing?: number;
48
- /** X-axis and Y-axis offset */
49
- offset?: Vector2;
50
- /** Range of characters covered by the component defined in number pairs.
51
- * The default value is [32, 126, 161, 255], this means that characters
52
- * from 32 to 126 and from 161 to 255 will be valid. */
53
- charRanges?: number[];
54
- /** Smoothing pixels (not recommended for pixel art) */
55
- smooth?: boolean;
56
- /** Text rotation (degrees or radians) */
57
- rotation?: Rotation;
58
- /** Change the opacity between 1 and 0 */
59
- opacity?: number;
60
- /** Direction in which the text will be rendered. */
61
- orientation?: TextOrientation;
62
- /** Margin in pixels to correct badly sliced characters. */
63
- bitmapMargin?: Vector2;
64
- /** Spacing in pixels to correct badly sliced characters. */
65
- bitmapSpacing?: Vector2;
66
- }
67
- /**
68
- * The TextRenderer component allows to render text using font families, colors, and other configuration options.
69
- * @public
70
- * @category Components
71
- * @example
72
- * ```js
73
- * this.addComponent(TextRenderer, {
74
- * text: "Hello world",
75
- * font: "Impact",
76
- * fontSize: 16,
77
- * width: 320,
78
- * height: 32,
79
- * color: "#FF0000",
80
- * });
81
- * ```
82
- * @example
83
- * ```js
84
- * this.addComponent(TextRenderer, {
85
- * text: "Hello world",
86
- * font: "Impact",
87
- * fontSize: 16,
88
- * width: 320,
89
- * height: 32,
90
- * color: "#FF0000",
91
- * offset: new Vector2(0, 0),
92
- * lineSeparation: 1,
93
- * letterSpacing: 1,
94
- * charRanges: [32, 126, 161, 255],
95
- * smooth: false,
96
- * rotation: new Rotation(0),
97
- * opacity: 1,
98
- * orientation: TextOrientation.RightDown
99
- * bitmapMargin: new Vector2(0, 0),
100
- * bitmapSpacing: new Vector2(0, 0),
101
- * });
102
- * ```
103
- */
104
- export declare class TextRenderer extends RenderComponent {
105
- /** The text to render */
106
- text: string;
107
- /** The font family to use */
108
- font: FontFace | string;
109
- /** The size of the font in pixels. */
110
- fontSize: number;
111
- /** The width of the invisible box where the text is rendered */
112
- width: number;
113
- /** The height of the invisible box where the text is rendered */
114
- height: number;
115
- /** X-axis and Y-axis offset */
116
- offset: Vector2;
117
- /** The text color */
118
- color: string;
119
- /** The separation between lines in pixels */
120
- lineSeparation: number;
121
- /** The space between chars in pixels */
122
- letterSpacing: number;
123
- /** Range of characters covered by the component defined in number pairs.
124
- * The default value is [32, 126, 161, 255], this means that characters
125
- * from 32 to 126 and from 161 to 255 will be valid. */
126
- charRanges: number[];
127
- /** Smoothing pixels (not recommended for pixel art) */
128
- smooth: boolean;
129
- /** Text rotation (degrees or radians) */
130
- rotation: Rotation;
131
- /** Change the opacity between 1 and 0 */
132
- opacity: number;
133
- /** Direction in which the text will be rendered. */
134
- orientation: TextOrientation;
135
- /** Margin in pixels to correct badly sliced characters. */
136
- bitmapMargin: Vector2;
137
- /** Spacing in pixels to correct badly sliced characters. */
138
- bitmapSpacing: Vector2;
139
- private renderData;
140
- private lastFrameText;
141
- protected init(config: TextRendererOptions): void;
142
- protected start(): void;
143
- protected update(): void;
144
- private crop;
145
- }
@@ -1,186 +0,0 @@
1
- import { RenderComponent } from "../../core/Component";
2
- import { ITilemapRenderer, Tileset, TilemapOrientation } from "./TilemapRenderer";
3
- /**
4
- * TiledTilemapRenderer configuration options
5
- * @public
6
- * @category Components
7
- * @example
8
- * ```js
9
- * import TilemapData from "export.json";
10
- *
11
- * this.addComponent(TilemapRenderer, {
12
- * tileset: {
13
- * image: this.assetManager.getImage("image.png"),
14
- * width: 3,
15
- * tileWidth: 16,
16
- * tileHeight: 16,
17
- * margin: new Vector2(0, 0),
18
- * spacing: new Vector2(0, 0),
19
- * }
20
- * tiledData: TilemapData,
21
- * tilemapLayer: "Layer1",
22
- * tileWidth: 16,
23
- * tileHeight: 16,
24
- * layer: "Tilemap",
25
- * orientation: TilemapOrientation.Center,
26
- * smooth: false,
27
- * });
28
- * ```
29
- */
30
- export interface TiledTilemapRendererOptions {
31
- /** Export of the Tiles application in JSON */
32
- tiledData: TiledTilemap;
33
- /** The Tiled tilemap layer to render */
34
- tilemapLayer: string;
35
- /** The Tileset instance */
36
- tileset: Tileset;
37
- tileWidth?: number;
38
- tileHeight?: number;
39
- /** The render layer */
40
- layer?: string;
41
- /** Direction in which the tilemap will be rendered. */
42
- orientation?: TilemapOrientation;
43
- /** Smoothing pixels (not recommended for pixel art) */
44
- smooth?: boolean;
45
- }
46
- /**
47
- * The TiledTilemapRenderer component allows you to render a tile map exported from the Tiled application,
48
- * using an instance of the TileSet object.
49
- * @public
50
- * @category Components
51
- * @example
52
- * ```js
53
- * import TilemapData from "export.json";
54
- *
55
- * this.addComponent(TiledTilemapRenderer, {
56
- * tileset: {
57
- * image: this.assetManager.getImage("image.png"),
58
- * width: 3,
59
- * tileWidth: 16,
60
- * tileHeight: 16,
61
- * }
62
- * tiledData: TilemapData,
63
- * tilemapLayer: "Layer1",
64
- * tileWidth: 16,
65
- * tileHeight: 16,
66
- * });
67
- * ```
68
- * @example
69
- * ```js
70
- * import TilemapData from "export.json";
71
- *
72
- * this.addComponent(TilemapRenderer, {
73
- * tileset: {
74
- * image: this.assetManager.getImage("image.png"),
75
- * width: 3,
76
- * tileWidth: 16,
77
- * tileHeight: 16,
78
- * margin: new Vector2(0, 0),
79
- * spacing: new Vector2(0, 0),
80
- * }
81
- * tiledData: TilemapData,
82
- * tilemapLayer: "Layer1",
83
- * tileWidth: 16,
84
- * tileHeight: 16,
85
- * layer: "Tilemap",
86
- * orientation: TilemapOrientation.Center,
87
- * smooth: false,
88
- * });
89
- * ```
90
- */
91
- export declare class TiledTilemapRenderer extends RenderComponent implements ITilemapRenderer {
92
- private readonly spriteDefaultScale;
93
- /**
94
- * Id of tiles separated by commas. The ids start at 1, and increment from left to right,
95
- * from top to bottom. ID 0 (zero) represents a space with no tile.
96
- * @readonly
97
- */
98
- tiles: number[];
99
- /** The width of the tile to render in pixels */
100
- tileWidth: number;
101
- /** The height of the tile to render in pixels */
102
- tileHeight: number;
103
- /**
104
- * The width of the tilemap in tiles (this is calculated by the component)
105
- * @readonly
106
- */
107
- width: number;
108
- /**
109
- * The height of the tilemap in tiles (this is calculated by the component)
110
- * @readonly
111
- */
112
- height: number;
113
- /** Direction in which the tilemap will be rendered (default value TilemapOrientation.Center) */
114
- orientation: TilemapOrientation;
115
- /** Define a color for tinting the tiles */
116
- tintColor: string;
117
- /** Change the opacity between 1 and 0 */
118
- opacity: number;
119
- /**
120
- * Tilemap width in pixels (this is calculated by the component)
121
- * @readonly
122
- */
123
- realWidth: number;
124
- /**
125
- * Tilemap height in pixels (this is calculated by the component)
126
- * @readonly
127
- */
128
- realHeight: number;
129
- private tiledData;
130
- private tiledLayer;
131
- private tileset;
132
- private layer;
133
- private smooth?;
134
- private tilesetTileIds;
135
- private chunks;
136
- private scaledTileWidth;
137
- private scaledTileHeight;
138
- private renderData;
139
- protected init({ tiledData, tilemapLayer, tileset, tileWidth, tileHeight, layer, orientation, smooth, }: TiledTilemapRendererOptions): void;
140
- protected update(): void;
141
- private processTilemap;
142
- private processChunk;
143
- private getTilesetTileId;
144
- private updateRenderData;
145
- }
146
- /** @category Components */
147
- export interface TiledTilemap {
148
- width: number;
149
- height: number;
150
- infinite: boolean;
151
- layers: TiledLayer[];
152
- renderorder: string;
153
- tilesets: {
154
- firstgid: number;
155
- }[];
156
- tilewidth: number;
157
- tileheight: number;
158
- }
159
- /** @category Components */
160
- export interface TiledChunk {
161
- data: number[];
162
- x: number;
163
- y: number;
164
- width: number;
165
- height: number;
166
- type?: string;
167
- }
168
- /** @category Components */
169
- export interface TiledLayer {
170
- name: string;
171
- id: number;
172
- chunks?: TiledChunk[];
173
- data?: number[];
174
- x: number;
175
- y: number;
176
- type: string;
177
- width: number;
178
- height: number;
179
- opacity: number;
180
- visible: boolean;
181
- startx?: number;
182
- starty?: number;
183
- offsetx?: number;
184
- offsety?: number;
185
- tintcolor?: string;
186
- }