melonjs 20.12.0 → 20.13.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 (120) hide show
  1. package/README.md +2 -1
  2. package/build/camera/camera2d.d.ts +2 -0
  3. package/build/camera/camera2d.d.ts.map +1 -1
  4. package/build/camera/effects/fade_effect.d.ts.map +1 -1
  5. package/build/geometries/ellipse.d.ts +3 -0
  6. package/build/geometries/ellipse.d.ts.map +1 -1
  7. package/build/geometries/line.d.ts.map +1 -1
  8. package/build/geometries/polygon.d.ts +2 -1
  9. package/build/geometries/polygon.d.ts.map +1 -1
  10. package/build/index.d.ts +13 -2
  11. package/build/index.d.ts.map +1 -1
  12. package/build/index.js +5409 -1500
  13. package/build/index.js.map +4 -4
  14. package/build/input/gamepad.d.ts.map +1 -1
  15. package/build/input/pointerevent.d.ts.map +1 -1
  16. package/build/level/tiled/TMXLayer.d.ts +48 -14
  17. package/build/level/tiled/TMXLayer.d.ts.map +1 -1
  18. package/build/level/tiled/TMXTileMap.d.ts +1 -1
  19. package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
  20. package/build/level/tiled/TMXTileset.d.ts.map +1 -1
  21. package/build/level/tiled/TMXUtils.d.ts.map +1 -1
  22. package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -1
  23. package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -1
  24. package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts.map +1 -1
  25. package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -1
  26. package/build/level/tiled/renderer/TMXRenderer.d.ts +1 -1
  27. package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -1
  28. package/build/level/tiled/renderer/TMXStaggeredRenderer.d.ts.map +1 -1
  29. package/build/loader/loader.d.ts +55 -11
  30. package/build/loader/loader.d.ts.map +1 -1
  31. package/build/math/color.d.ts.map +1 -1
  32. package/build/math/math.d.ts +6 -1
  33. package/build/math/math.d.ts.map +1 -1
  34. package/build/math/observableVector2d.d.ts +6 -6
  35. package/build/math/observableVector2d.d.ts.map +1 -1
  36. package/build/math/observableVector3d.d.ts +8 -8
  37. package/build/math/observableVector3d.d.ts.map +1 -1
  38. package/build/particles/emitter.d.ts +15 -3
  39. package/build/particles/emitter.d.ts.map +1 -1
  40. package/build/particles/particle.d.ts +6 -0
  41. package/build/particles/particle.d.ts.map +1 -1
  42. package/build/particles/settings.d.ts +22 -5
  43. package/build/particles/settings.d.ts.map +1 -1
  44. package/build/physics/builtin/body.d.ts +14 -4
  45. package/build/physics/builtin/body.d.ts.map +1 -1
  46. package/build/physics/builtin/raycast.d.ts.map +1 -1
  47. package/build/physics/world.d.ts.map +1 -1
  48. package/build/renderable/container.d.ts +40 -6
  49. package/build/renderable/container.d.ts.map +1 -1
  50. package/build/renderable/frameAnimation.d.ts.map +1 -1
  51. package/build/renderable/renderable.d.ts.map +1 -1
  52. package/build/renderable/sprite.d.ts +4 -2
  53. package/build/renderable/sprite.d.ts.map +1 -1
  54. package/build/renderable/text/bitmaptext.d.ts +12 -3
  55. package/build/renderable/text/bitmaptext.d.ts.map +1 -1
  56. package/build/renderable/text/text.d.ts +147 -4
  57. package/build/renderable/text/text.d.ts.map +1 -1
  58. package/build/renderable/text/textmetrics.d.ts +10 -2
  59. package/build/renderable/text/textmetrics.d.ts.map +1 -1
  60. package/build/renderable/text/textstyle.d.ts.map +1 -1
  61. package/build/renderable/ui/panelpaint.d.ts +5 -1
  62. package/build/renderable/ui/panelpaint.d.ts.map +1 -1
  63. package/build/renderable/ui/progressbar.d.ts +267 -95
  64. package/build/renderable/ui/progressbar.d.ts.map +1 -1
  65. package/build/renderable/ui/uibaseelement.d.ts +436 -50
  66. package/build/renderable/ui/uibaseelement.d.ts.map +1 -1
  67. package/build/renderable/ui/uicheckbox.d.ts +383 -0
  68. package/build/renderable/ui/uicheckbox.d.ts.map +1 -0
  69. package/build/renderable/ui/uifocus.d.ts +6 -0
  70. package/build/renderable/ui/uifocus.d.ts.map +1 -0
  71. package/build/renderable/ui/uilabel.d.ts +31 -0
  72. package/build/renderable/ui/uilabel.d.ts.map +1 -0
  73. package/build/renderable/ui/uipanel.d.ts +589 -116
  74. package/build/renderable/ui/uipanel.d.ts.map +1 -1
  75. package/build/renderable/ui/uiskin.d.ts +25 -0
  76. package/build/renderable/ui/uiskin.d.ts.map +1 -0
  77. package/build/renderable/ui/uislider.d.ts +518 -0
  78. package/build/renderable/ui/uislider.d.ts.map +1 -0
  79. package/build/renderable/ui/uispriteelement.d.ts +161 -85
  80. package/build/renderable/ui/uispriteelement.d.ts.map +1 -1
  81. package/build/renderable/ui/uitextbutton.d.ts +369 -63
  82. package/build/renderable/ui/uitextbutton.d.ts.map +1 -1
  83. package/build/state/stage.d.ts.map +1 -1
  84. package/build/system/pool.d.ts.map +1 -1
  85. package/build/system/save.d.ts +2 -1
  86. package/build/system/save.d.ts.map +1 -1
  87. package/build/tweens/tween.d.ts +5 -2
  88. package/build/tweens/tween.d.ts.map +1 -1
  89. package/build/utils/fetchdata.d.ts.map +1 -1
  90. package/build/video/canvas/canvas_renderer.d.ts +0 -5
  91. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  92. package/build/video/renderer.d.ts +20 -4
  93. package/build/video/renderer.d.ts.map +1 -1
  94. package/build/video/renderstate.d.ts +26 -3
  95. package/build/video/renderstate.d.ts.map +1 -1
  96. package/build/video/utils/tessellation.d.ts +11 -0
  97. package/build/video/utils/tessellation.d.ts.map +1 -1
  98. package/build/video/webgl/webgl_renderer.d.ts +3 -6
  99. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  100. package/build/video/webgpu/batchers/primitive_batcher.d.ts.map +1 -1
  101. package/build/video/webgpu/webgpu_renderer.d.ts +3 -6
  102. package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/skills/melonjs/SKILL.md +3 -3
  105. package/skills/melonjs-audio/SKILL.md +7 -5
  106. package/skills/melonjs-camera-and-drawing/SKILL.md +41 -1
  107. package/skills/melonjs-effects-and-shaders/SKILL.md +1 -0
  108. package/skills/melonjs-events/SKILL.md +3 -1
  109. package/skills/melonjs-getting-started/SKILL.md +1 -2
  110. package/skills/melonjs-input/SKILL.md +38 -2
  111. package/skills/melonjs-loading-assets/SKILL.md +53 -12
  112. package/skills/melonjs-math/SKILL.md +14 -3
  113. package/skills/melonjs-particles-and-trails/SKILL.md +72 -8
  114. package/skills/melonjs-physics/SKILL.md +53 -4
  115. package/skills/melonjs-plugins/SKILL.md +7 -2
  116. package/skills/melonjs-renderables/SKILL.md +7 -0
  117. package/skills/melonjs-scenes-and-state/SKILL.md +15 -0
  118. package/skills/melonjs-sprites-and-animation/SKILL.md +14 -0
  119. package/skills/melonjs-tilemaps/SKILL.md +96 -2
  120. package/skills/melonjs-ui-and-text/SKILL.md +560 -23
@@ -4,127 +4,433 @@ import type Pointer from "../../input/pointer.ts";
4
4
  import type { Bounds } from "../../physics/bounds.ts";
5
5
  import type Renderer from "../../video/renderer.js";
6
6
  import BitmapText from "../text/bitmaptext.js";
7
+ import type { Paint } from "./panelpaint.ts";
8
+ import type { UIJuiceSettings } from "./uibaseelement.ts";
7
9
  import UIBaseElement from "./uibaseelement.ts";
8
- interface UITextButtonSettings {
10
+ import type { UILabel } from "./uilabel.ts";
11
+ import type { UISkin } from "./uiskin.ts";
12
+ /**
13
+ * The art of a skinned {@link UITextButton}: one atlas region name per
14
+ * state, plus the `atlas` and optional nine-slice insets from
15
+ * {@link UISkin}.
16
+ *
17
+ * Each region is drawn as a nine-slice, so the button can be any size.
18
+ * Every region named is looked up when the button is built, so a typo
19
+ * throws there.
20
+ * @category UI
21
+ * @example
22
+ * const skin = {
23
+ * atlas,
24
+ * normal: "green_button04",
25
+ * pressed: "green_button05",
26
+ * disabled: "grey_button04",
27
+ * };
28
+ */
29
+ export interface UITextButtonSkin extends UISkin {
30
+ /** the region drawn at rest; also sets the button's default size */
31
+ normal: string;
32
+ /**
33
+ * The region drawn while held down; `normal` if left out. When it is
34
+ * shorter than `normal`, as pressed art usually is, it is drawn lowered
35
+ * by the difference and the label moves down with it.
36
+ */
37
+ pressed?: string;
38
+ /** the region drawn under the pointer; `normal` if left out */
39
+ hover?: string;
40
+ /** the region drawn while disabled; `normal` at half opacity if left out */
41
+ disabled?: string;
42
+ }
43
+ /**
44
+ * Everything {@link UITextButton} takes. Every field is optional. The
45
+ * object is only read, so one style object can be spread into several
46
+ * buttons.
47
+ * @category UI
48
+ */
49
+ export interface UITextButtonSettings extends UIJuiceSettings {
50
+ /**
51
+ * The font: the name of a loaded bitmap font, or a CSS font family. A
52
+ * name with a font image in the loader, or a `fontData` setting, is drawn
53
+ * as a {@link BitmapText}; anything else as a {@link Text} with that CSS
54
+ * font.
55
+ * @default "sans-serif"
56
+ */
9
57
  font?: string;
58
+ /**
59
+ * the loader name of the bitmap font data, when it differs from `font`
60
+ */
61
+ fontData?: string;
62
+ /**
63
+ * The label's height in pixels, for a bitmap font as for a CSS font. A
64
+ * bitmap font is scaled to it. Left out: 16 for a CSS font, the authored
65
+ * size for a bitmap font. Wins over `size`.
66
+ */
67
+ fontSize?: number;
68
+ /**
69
+ * Older form of `fontSize`, still accepted. With a CSS font it is the
70
+ * height in pixels; with a bitmap font it is a scale of the authored
71
+ * size (`2` is double), not pixels.
72
+ */
10
73
  size?: number;
74
+ /**
75
+ * the label's text
76
+ * @default ""
77
+ */
11
78
  text?: string;
12
- /** see {@link UITextButton.bindKey} */
13
- bindKey?: string | number;
14
- hoverOffColor?: string;
15
- hoverOnColor?: string;
16
- borderStrokeColor?: string;
79
+ /**
80
+ * The label's colour. A bitmap font is tinted with it; left out, a
81
+ * bitmap font keeps its own colours and a CSS font is black.
82
+ */
83
+ labelFillStyle?: string;
84
+ /** older name of `labelFillStyle`, still accepted */
17
85
  fillStyle?: string;
86
+ /**
87
+ * A keyboard shortcut that clicks the button: an `input.KEY` key code,
88
+ * or the name of an action bound with `input.bindKey`. `-1` for none.
89
+ * See {@link UITextButton#bindKey}.
90
+ * @default -1
91
+ */
92
+ bindKey?: string | number;
93
+ /**
94
+ * What the button does. Called once per completed click: pressed and
95
+ * released on the button, Enter / Space / A pressed and released with
96
+ * the focus on it, or its `bindKey` pressed and released. A press dragged
97
+ * off the button, called off, or turned into a scroll by a
98
+ * {@link UIPanel} does not call it. Nor does a disabled button.
99
+ */
100
+ onClick?: (button: UITextButton) => void;
101
+ /**
102
+ * whether the button answers input; see {@link UIBaseElement#enabled}
103
+ * @default true
104
+ */
105
+ enabled?: boolean;
106
+ /**
107
+ * Draw the button from atlas regions instead of a rounded rectangle.
108
+ * The colour settings below are then not used.
109
+ */
110
+ skin?: UITextButtonSkin;
111
+ /**
112
+ * background colour at rest, drawn look only
113
+ * @default "#00aa0080"
114
+ */
115
+ hoverOffColor?: Paint;
116
+ /**
117
+ * background colour under the pointer, drawn look only
118
+ * @default "#00ff00ff"
119
+ */
120
+ hoverOnColor?: Paint;
121
+ /**
122
+ * Background colour while held down, drawn look only. Left out, a held
123
+ * button shows `hoverOnColor`.
124
+ */
125
+ pressedColor?: Paint;
126
+ /**
127
+ * outline colour, drawn look only
128
+ * @default "#000000"
129
+ */
130
+ borderColor?: Paint;
131
+ /** older name of `borderColor`, still accepted */
132
+ borderStrokeColor?: Paint;
133
+ /**
134
+ * The label's horizontal alignment about the centre of the button:
135
+ * `"left"` starts the text at the centre, `"right"` ends it there.
136
+ * @default "center"
137
+ */
18
138
  textAlign?: string;
139
+ /**
140
+ * the label's baseline about the vertical middle of the button
141
+ * @default "middle"
142
+ */
19
143
  textBaseline?: string;
144
+ /**
145
+ * The button's width in pixels. Left out: the skin's `normal` region
146
+ * width, or else the label's width plus 16.
147
+ */
148
+ width?: number;
149
+ /**
150
+ * The button's height in pixels. Left out: the skin's `normal` region
151
+ * height, or else the label's height plus 16.
152
+ */
153
+ height?: number;
154
+ /**
155
+ * Older name of `width`, still accepted. It is the button's width, not an
156
+ * outline thickness as `borderWidth` is on the other widgets.
157
+ */
20
158
  borderWidth?: number;
159
+ /** older name of `height`, still accepted */
21
160
  borderHeight?: number;
161
+ /**
162
+ * Anything else is passed on to the {@link BitmapText} of a bitmap font
163
+ * label, such as `lineHeight`.
164
+ */
22
165
  [key: string]: any;
23
166
  }
24
167
  /**
25
- * This is a basic base text button which you can use in your Game UI.
168
+ * A button with a text label. Use it for menu entries, dialog choices and
169
+ * any action the player clicks, taps, or selects with the keyboard or a pad.
170
+ *
171
+ * ## Drawn or skinned
172
+ * With no assets, it is drawn as a rounded rectangle in `hoverOffColor`,
173
+ * `hoverOnColor` under the pointer and `pressedColor` while held (which
174
+ * follows `hoverOnColor` when left out), with a `borderColor` outline. Give
175
+ * it a `skin` ({@link UITextButtonSkin}) to draw it from atlas regions
176
+ * instead, stretched as a nine-slice to any `width` and `height`.
177
+ *
178
+ * ## What it does
179
+ * Pass an `onClick` setting. It is called on a COMPLETED click only: a press
180
+ * dragged off the button is taken back, and a drag that starts on it inside
181
+ * a scrolling {@link UIPanel} scrolls the panel instead. Enter, Space or A
182
+ * with the focus, and the `bindKey` shortcut, click it too.
183
+ *
184
+ * A subclass can still override {@link UIBaseElement#onClick} and
185
+ * {@link UIBaseElement#onRelease}; they run on the press and on the
186
+ * release, before the `onClick` setting.
187
+ *
188
+ * ## Text
189
+ * `font` is the name of a loaded bitmap font or, failing that, a CSS font
190
+ * family (`"sans-serif"` by default). `fontSize` is the label height in
191
+ * pixels for both kinds. `labelFillStyle` colours it.
192
+ *
193
+ * ## Turning it off
194
+ * `enabled: false` (or setting {@link UIBaseElement#enabled} later) stops
195
+ * clicks, the shortcut and the focus, and draws it with its `disabled` skin
196
+ * region or at half opacity.
197
+ *
198
+ * ## Older setting names
199
+ * Still accepted, as aliases: `borderWidth` / `borderHeight` for `width` /
200
+ * `height`, `size` for `fontSize` (a scale with a bitmap font),
201
+ * `fillStyle` for `labelFillStyle`, and `borderStrokeColor` for
202
+ * `borderColor`.
203
+ *
204
+ * Focus, bounce (`hoverScale`, `pressScale`) and the rest come from
205
+ * {@link UIBaseElement}.
26
206
  * @category UI
207
+ * @example
208
+ * // drawn, with no assets
209
+ * import { UITextButton, state } from "melonjs";
210
+ *
211
+ * const play = new UITextButton(100, 200, {
212
+ * text: "Play",
213
+ * fontSize: 24,
214
+ * onClick: () => state.change(state.PLAY),
215
+ * });
216
+ * app.world.addChild(play);
217
+ * @example
218
+ * // skinned from an atlas, with a bitmap font 12 pixels high
219
+ * const accept = new UITextButton(30, 250, {
220
+ * font: "kenpixel",
221
+ * fontSize: 12,
222
+ * text: "Accept",
223
+ * width: 160,
224
+ * skin: { atlas, normal: "green_button04", pressed: "green_button05" },
225
+ * onClick: () => saveSettings(),
226
+ * });
227
+ * @example
228
+ * // a keyboard shortcut: Escape clicks "Back"
229
+ * import { UITextButton, input } from "melonjs";
230
+ *
231
+ * const back = new UITextButton(20, 20, {
232
+ * text: "Back",
233
+ * bindKey: input.KEY.ESC,
234
+ * onClick: () => closeMenu(),
235
+ * });
236
+ * @example
237
+ * // disabled until something happens
238
+ * const start = new UITextButton(100, 300, {
239
+ * text: "Start",
240
+ * enabled: false,
241
+ * onClick: () => startGame(),
242
+ * });
243
+ * // ... once the player has picked a character
244
+ * start.enabled = true;
245
+ * @example
246
+ * // one style shared by several buttons
247
+ * const style = {
248
+ * font: "Arial",
249
+ * fontSize: 20,
250
+ * width: 200,
251
+ * labelFillStyle: "#ffffff",
252
+ * hoverOffColor: "#224488",
253
+ * hoverOnColor: "#3366cc",
254
+ * pressedColor: "#112244",
255
+ * borderColor: "#ffffff",
256
+ * hoverScale: 1.05,
257
+ * };
258
+ * const resume = new UITextButton(100, 150, { ...style, text: "Resume", onClick: resumeGame });
259
+ * const quit = new UITextButton(100, 210, { ...style, text: "Quit", onClick: quitGame });
27
260
  */
28
261
  export default class UITextButton extends UIBaseElement {
29
262
  /**
30
- * Keyboard shortcut: an input.KEY keycode or an existing input action name.
31
- * A press calls onClick() and its matching release calls onRelease(), both
32
- * without a pointer event. Shortcuts are active only while the button is
33
- * activated and never change global key bindings. The first input to press
34
- * owns the button until released; shortcuts do not start pointer dragging
35
- * or tap-and-hold.
263
+ * A keyboard shortcut that clicks the button: an `input.KEY` key code, or
264
+ * the name of an action bound with `input.bindKey` (so every key bound to
265
+ * it works). `-1`, or an empty string, for none.
266
+ *
267
+ * The key going down presses the button (the `onClick` method runs, with
268
+ * no event); the same key coming up releases it (`onRelease`), then the
269
+ * `onClick` setting runs. The shortcut works only while the button is in
270
+ * the scene and enabled, and it does not change any global key binding.
271
+ * Whichever input presses first, key or pointer, owns the press until it
272
+ * is released.
36
273
  *
37
- * `isClickable` gates the PRESS, not the release: a button disabled while
38
- * its key is held still releases when that key comes up, so it cannot be
39
- * left stuck down.
274
+ * While another widget has the keyboard and gamepad focus (see
275
+ * {@link UIBaseElement#focus}), Enter and Space belong to that widget,
276
+ * whether its focus ring shows or not: an "OK" bound to Enter does not
277
+ * fire while "Cancel" is focused, and one key press never clicks both. A
278
+ * focused widget that is disabled or hidden does not keep them. Call
279
+ * `blur()` on the focused widget to give Enter back to the shortcut.
40
280
  *
41
- * **Losing focus or being removed cancels a held press WITHOUT calling
42
- * `onRelease()`.** The press was abandoned rather than completed, so the
43
- * button returns to its released state silently. Code that treats the pair
44
- * as press and depress, firing a weapon on click and stopping on release,
45
- * needs to stop on {@link event.BLUR} too or it will still be firing when
46
- * the window comes back.
281
+ * Setting `enabled` to `false` while the key is held calls the press off.
282
+ * Clearing only `isClickable` blocks new presses but still lets a held key
283
+ * release, so the button is not left stuck down.
284
+ *
285
+ * The window losing focus, or the button being removed, calls a held key
286
+ * press off: `onCancel()` is called instead of `onRelease()`, and there
287
+ * is no click. Code that starts something on the press, such as firing a
288
+ * weapon, stops it in both `onRelease()` and `onCancel()`.
47
289
  * @default -1
290
+ * @example
291
+ * // Escape clicks the button
292
+ * backButton.bindKey = input.KEY.ESC;
293
+ * @example
294
+ * // every key bound to the "pause" action clicks the button
295
+ * input.bindKey(input.KEY.P, "pause");
296
+ * pauseButton.bindKey = "pause";
48
297
  */
49
298
  bindKey: string | number;
299
+ /**
300
+ * What the button does, from the `onClick` setting: called once per
301
+ * completed click, with the button. Can be set or replaced later. See
302
+ * {@link UITextButtonSettings.onClick}.
303
+ * @example
304
+ * // switch what the button does once the level is loaded
305
+ * startButton.onClickCallback = () => state.change(state.PLAY);
306
+ */
307
+ onClickCallback: ((button: UITextButton) => void) | undefined;
50
308
  private keyboardKey;
51
309
  private keyboardActive;
52
310
  private readonly keyDown;
53
311
  private readonly keyUp;
54
312
  private readonly cancelKeyboardPress;
55
313
  /**
56
- * The css value of a color to be used if the pointer is not hovering over the button
314
+ * The background colour at rest, drawn look only.
315
+ * @default "#00aa0080"
316
+ */
317
+ hoverOffColor: Paint;
318
+ /**
319
+ * The background colour under the pointer, drawn look only. Also the
320
+ * colour while held, when `pressedColor` is undefined.
321
+ * @default "#00ff00ff"
57
322
  */
58
- hoverOffColor: string;
323
+ hoverOnColor: Paint;
59
324
  /**
60
- * The css value of a color to be used if the pointer hovers over the button
325
+ * The background colour while held down, drawn look only. Left
326
+ * undefined, the button shows {@link UITextButton#hoverOnColor},
327
+ * following it if it changes.
61
328
  */
62
- hoverOnColor: string;
329
+ pressedColor: Paint | undefined;
63
330
  /**
64
- * The css value of a color to be used to draw the border
331
+ * The outline colour, drawn look only: the `borderColor` setting (or its
332
+ * older name `borderStrokeColor`).
333
+ * @default "#000000"
65
334
  */
66
- borderStrokeColor: string;
335
+ borderStrokeColor: Paint;
67
336
  /**
68
- * Set the default text alignment (or justification),<br>
69
- * possible values are "left", "right", and "center".
337
+ * The label's horizontal alignment about the centre of the button:
338
+ * `"left"`, `"right"` or `"center"`. Read when the button is built.
70
339
  * @default "center"
71
340
  */
72
341
  textAlign: string;
73
342
  /**
74
- * Set the text baseline (e.g. the Y-coordinate for the draw operation), <br>
75
- * possible values are "top", "hanging", "middle", "alphabetic", "ideographic", "bottom"<br>
343
+ * The label's baseline about the vertical middle of the button: `"top"`,
344
+ * `"hanging"`, `"middle"`, `"alphabetic"`, `"ideographic"` or
345
+ * `"bottom"`. Read when the button is built.
76
346
  * @default "middle"
77
347
  */
78
348
  textBaseline: string;
79
349
  /**
80
- * the bitmapText used by the UITextButton class
350
+ * The label: a {@link BitmapText} for a loaded bitmap font, a
351
+ * {@link Text} otherwise.
352
+ * @example
353
+ * // change the text later (the button keeps its size)
354
+ * scoreButton.label.setText("Score: 120");
81
355
  */
82
- bitmapText: BitmapText;
356
+ label: UILabel;
83
357
  /**
84
- * the measured text dimensions
358
+ * the label's size as measured when the button was built
85
359
  */
86
360
  dimensions: Bounds;
87
361
  /**
88
- * the round rect border
362
+ * the rounded rectangle the drawn look fills and outlines
89
363
  */
90
364
  border: RoundRect;
365
+ /** the `skin` setting, or `undefined` for the drawn look */
366
+ readonly skin: UITextButtonSkin | undefined;
367
+ /** @ignore */
368
+ private _skin;
369
+ /** how far the label is lowered right now, for the pressed art */
370
+ private _labelDrop;
91
371
  /**
92
- * A Bitmap Text Button with an outlined background border, filled with background color.
93
- * It uses a RoundRect as background and changes the background color on hovering over.
94
- * The background will be drawn with 0.5 opacity, so that the background of the button is
95
- * slightly shining through.
96
- * @param x - x pos of the button
97
- * @param y - y pos of the button
98
- * @param settings - settings object
372
+ * @param x - the x position of the button's top-left corner, in screen pixels
373
+ * @param y - the y position of the button's top-left corner, in screen pixels
374
+ * @param settings - see {@link UITextButtonSettings}
99
375
  * @example
100
- * // Create a new Button
101
- * class PlayButton extends UITextButton {
102
- * constructor(x,y) {
103
- * super(x,y, {
104
- * font: 'my-font',
105
- * text: 'Play',
106
- * // if you omit the next two, size is calculated by the size of the text
107
- * borderWidth: 200,
108
- * borderHeight: 20,
109
- * hoverOffColor: '#00aa0080',
110
- * hoverOnColor: '#00ff00ff'
111
- * });
112
- * }
113
- *
114
- * onClick(){
115
- * state.change(state.PLAY);
116
- * }
376
+ * // as a subclass, acting on the press rather than the completed click
377
+ * class FireButton extends UITextButton {
378
+ * constructor(x, y) {
379
+ * super(x, y, { text: "Fire", width: 120, height: 48 });
380
+ * }
381
+ * onClick() {
382
+ * startFiring();
383
+ * return false;
384
+ * }
385
+ * onRelease() {
386
+ * stopFiring();
387
+ * return false;
388
+ * }
389
+ * onCancel() {
390
+ * stopFiring();
391
+ * }
117
392
  * }
393
+ */
394
+ constructor(x: number, y: number, settings?: UITextButtonSettings);
395
+ /**
396
+ * The label, under its original name and type, for code written when it
397
+ * was always a {@link BitmapText}. With a CSS font it is a {@link Text}
398
+ * all the same.
399
+ * @deprecated since 20.13.0, use {@link UITextButton#label}
400
+ */
401
+ get bitmapText(): BitmapText;
402
+ set bitmapText(value: BitmapText);
403
+ /**
404
+ * Called when Enter, Space or A is let go with the focus here: a
405
+ * completed click, so the `onClick` setting runs.
406
+ */
407
+ focusRelease(): void;
408
+ /**
409
+ * Call off a press, from the pointer or from the `bindKey`, without a
410
+ * click. See {@link UIBaseElement#cancelPress}.
411
+ */
412
+ cancelPress(): void;
413
+ /**
414
+ * Resize the button; the background and the centred label follow.
118
415
  *
119
- * world.addChild(new PlayButton(15,200));
416
+ * A {@link UIPanel} calls this to stretch a button to its column.
417
+ * @param w - the new width, in pixels
418
+ * @param h - the new height, in pixels
419
+ * @returns this button
420
+ * @example
421
+ * button.resize(240, 48);
120
422
  */
121
- constructor(x: number, y: number, settings: UITextButtonSettings);
423
+ resize(w: number, h: number): this;
122
424
  onActivateEvent(): void;
123
425
  onDeactivateEvent(): void;
124
426
  clicked(event: Pointer): boolean | void;
125
427
  release(event: Pointer): boolean | void;
126
428
  pointerMove(event: Pointer): void;
127
429
  draw(renderer: Renderer, viewport?: Camera2d): void;
430
+ /**
431
+ * Free the skin's sprite.
432
+ * @ignore
433
+ */
434
+ onDestroyEvent(): void;
128
435
  }
129
- export {};
130
436
  //# sourceMappingURL=uitextbutton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uitextbutton.d.ts","sourceRoot":"","sources":["../../../src/renderable/ui/uitextbutton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,UAAU,oBAAoB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACtD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAkBtB;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAQpB;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMlC;IAEF;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;gBACS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB;IAyCvD,eAAe,IAAI,IAAI;IAWvB,iBAAiB,IAAI,IAAI;IASzB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAOvC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAOvC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMjC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;CAY5D"}
1
+ {"version":3,"file":"uitextbutton.d.ts","sourceRoot":"","sources":["../../../src/renderable/ui/uitextbutton.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAWnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4B7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAuL7C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAyC5C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CACX,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,MAA2D,EACvE,UAAU,GAAE,MAA2D,GACrE,IAAI;IAwGP;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOxD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAMtC"}
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAWnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4B7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAuL7C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAkD5C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CACX,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,MAA2D,EACvE,UAAU,GAAE,MAA2D,GACrE,IAAI;IAwGP;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOxD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAMtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/system/pool.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE;IAC1D,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE;IACvE,QAAQ,EAAE,CAAC,CAAC;IAIZ,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACnC;AAKD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAE/D,CAAC;AAuEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,EAC/D,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAC9C,IAAI,CAAC,CAAC,EAAE,CAAC,CAyGX,CAAC"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/system/pool.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE;IAC1D,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE;IACvE,QAAQ,EAAE,CAAC,CAAC;IAIZ,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACnC;AAKD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAE/D,CAAC;AAuEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,EAC/D,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAC9C,IAAI,CAAC,CAAC,EAAE,CAAC,CAqHX,CAAC"}
@@ -31,7 +31,8 @@ export interface SaveAPI {
31
31
  */
32
32
  add<T extends Record<string, Jsonifiable>>(props: T): this & T;
33
33
  /**
34
- * Remove a key from localStorage
34
+ * Remove a key from localStorage. The key stays registered: setting it
35
+ * again saves it again, and it is restored on the next load like any other.
35
36
  * @param key - key to be removed
36
37
  * @example
37
38
  * // Remove the "score" key from localStorage
@@ -1 +1 @@
1
- {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/system/save.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAqFxC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;;;;;;;;;;OAeG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAE/D;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,kDAAkD;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,IAAI,EAAE,OAqEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/system/save.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA8FxC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;;;;;;;;;;OAeG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,kDAAkD;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,IAAI,EAAE,OA0EX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -100,8 +100,11 @@ export default class Tween {
100
100
  */
101
101
  delay(amount: number): this;
102
102
  /**
103
- * Repeat the tween
104
- * @param times - amount of times the tween should be repeated
103
+ * Repeat the tween. The count applies to every `start()`: a tween that has
104
+ * finished and is started again (or is chained back round) plays its
105
+ * repeats again.
106
+ * @param times - amount of times the tween should be repeated, after the
107
+ * first run (`Infinity` for an endless loop)
105
108
  * @returns this instance for object chaining
106
109
  */
107
110
  repeat(times: number): this;
@@ -1 +1 @@
1
- {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../src/tweens/tween.ts"],"names":[],"mappings":"AAWA,OAAO,EAAU,cAAc,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAiB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAO1E;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACnE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IAqHzB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;gBACS,MAAM,EAAE,MAAM;IAqJ1B;;;;;;;;;;;;;OAaG;IACH,EAAE,CACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAChC;IAkCF;;;;OAIG;IACH,KAAK,CAAC,IAAI,SAAkB;IA4C5B;;;OAGG;IACH,IAAI;IAKJ;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM;IAKpB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM;IAKpB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM;IAK1B;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,OAAO;IAKlB;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc;IAK7B;;;;OAIG;IACH,aAAa,CAAC,aAAa,EAAE,qBAAqB;IAKlD;;;;OAIG;IACH,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAKxB;;;;OAIG;IACH,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC;IAKhD;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAKnD;;;;OAIG;IACH,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC;IA0HzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEhB;IAED;;;;;;;OAOG;IACH,MAAM,KAAK,aAAa;;;;MAEvB;CACD;AAED,eAAO,MAAM,SAAS,kDASpB,CAAC"}
1
+ {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../src/tweens/tween.ts"],"names":[],"mappings":"AAWA,OAAO,EAAU,cAAc,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAiB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAO1E;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACnE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IAsIzB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;gBACS,MAAM,EAAE,MAAM;IAuJ1B;;;;;;;;;;;;;OAaG;IACH,EAAE,CACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;QAClD,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAChC;IA6CF;;;;OAIG;IACH,KAAK,CAAC,IAAI,SAAkB;IA4D5B;;;OAGG;IACH,IAAI;IAKJ;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM;IAKpB;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM;IAMpB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM;IAK1B;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,OAAO;IAKlB;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc;IAK7B;;;;OAIG;IACH,aAAa,CAAC,aAAa,EAAE,qBAAqB;IAKlD;;;;OAIG;IACH,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAKxB;;;;OAIG;IACH,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC;IAKhD;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAKnD;;;;OAIG;IACH,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAoIzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEhB;IAED;;;;;;;OAOG;IACH,MAAM,KAAK,aAAa;;;;MAEvB;CACD;AAED,eAAO,MAAM,SAAS,kDASpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchdata.d.ts","sourceRoot":"","sources":["../../src/utils/fetchdata.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,oCANW,MAAM,aACN,MAAM,GACJ,OAAO,CAMnB;AA0FD;;;;;;;;;;GAUG;AACH,mCALW,MAAM,gBA4DhB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,+BAfW,MAAM,gBACN,MAAM,aACN,MAAM,gBAwDhB"}
1
+ {"version":3,"file":"fetchdata.d.ts","sourceRoot":"","sources":["../../src/utils/fetchdata.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,oCANW,MAAM,aACN,MAAM,GACJ,OAAO,CAMnB;AA0FD;;;;;;;;;;GAUG;AACH,mCALW,MAAM,gBA4DhB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,+BAfW,MAAM,gBACN,MAAM,aACN,MAAM,gBA8EhB"}
@@ -301,11 +301,6 @@ export default class CanvasRenderer extends Renderer {
301
301
  * @param {number} y
302
302
  */
303
303
  fillPoint(x: number, y: number): void;
304
- /**
305
- * Return the global alpha
306
- * @returns {number} global alpha value
307
- */
308
- getGlobalAlpha(): number;
309
304
  /**
310
305
  * Reset (overrides) the renderer transformation matrix to the
311
306
  * identity one, and then apply the given transformation matrix.
@@ -1 +1 @@
1
- {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}