@vpmedia/phaser 1.112.0 → 1.113.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.
- package/dist/index.js +1261 -1314
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/animation.d.ts +14 -10
- package/dist/phaser/core/animation.d.ts.map +1 -1
- package/dist/phaser/core/animation_manager.d.ts +10 -8
- package/dist/phaser/core/animation_manager.d.ts.map +1 -1
- package/dist/phaser/core/animation_parser.d.ts +5 -4
- package/dist/phaser/core/animation_parser.d.ts.map +1 -1
- package/dist/phaser/core/array_set.d.ts.map +1 -1
- package/dist/phaser/core/cache.d.ts +4 -3
- package/dist/phaser/core/cache.d.ts.map +1 -1
- package/dist/phaser/core/const.d.ts.map +1 -1
- package/dist/phaser/core/device.d.ts.map +1 -1
- package/dist/phaser/core/device_util.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts +3 -2
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/event_manager.d.ts.map +1 -1
- package/dist/phaser/core/factory.d.ts +1 -1
- package/dist/phaser/core/factory.d.ts.map +1 -1
- package/dist/phaser/core/frame.d.ts.map +1 -1
- package/dist/phaser/core/frame_data.d.ts.map +1 -1
- package/dist/phaser/core/game.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts +8 -6
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts +40 -30
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/input_mouse.d.ts +3 -2
- package/dist/phaser/core/input_mouse.d.ts.map +1 -1
- package/dist/phaser/core/input_mspointer.d.ts +3 -2
- package/dist/phaser/core/input_mspointer.d.ts.map +1 -1
- package/dist/phaser/core/input_pointer.d.ts +6 -4
- package/dist/phaser/core/input_pointer.d.ts.map +1 -1
- package/dist/phaser/core/input_touch.d.ts +3 -2
- package/dist/phaser/core/input_touch.d.ts.map +1 -1
- package/dist/phaser/core/loader.d.ts +4 -3
- package/dist/phaser/core/loader.d.ts.map +1 -1
- package/dist/phaser/core/loader_parser.d.ts +9 -8
- package/dist/phaser/core/loader_parser.d.ts.map +1 -1
- package/dist/phaser/core/raf.d.ts +3 -2
- package/dist/phaser/core/raf.d.ts.map +1 -1
- package/dist/phaser/core/registry.d.ts +7 -0
- package/dist/phaser/core/registry.d.ts.map +1 -0
- package/dist/phaser/core/scale_manager.d.ts +1 -1
- package/dist/phaser/core/scale_manager.d.ts.map +1 -1
- package/dist/phaser/core/scene.d.ts +0 -1
- package/dist/phaser/core/scene.d.ts.map +1 -1
- package/dist/phaser/core/scene_manager.d.ts +1 -1
- package/dist/phaser/core/scene_manager.d.ts.map +1 -1
- package/dist/phaser/core/signal.d.ts +0 -1
- package/dist/phaser/core/signal.d.ts.map +1 -1
- package/dist/phaser/core/signal_binding.d.ts +4 -3
- package/dist/phaser/core/signal_binding.d.ts.map +1 -1
- package/dist/phaser/core/sound.d.ts +6 -4
- package/dist/phaser/core/sound.d.ts.map +1 -1
- package/dist/phaser/core/sound_manager.d.ts +3 -2
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/dist/phaser/core/sound_sprite.d.ts +5 -4
- package/dist/phaser/core/sound_sprite.d.ts.map +1 -1
- package/dist/phaser/core/stage.d.ts +3 -2
- package/dist/phaser/core/stage.d.ts.map +1 -1
- package/dist/phaser/core/time.d.ts +1 -1
- package/dist/phaser/core/time.d.ts.map +1 -1
- package/dist/phaser/core/timer.d.ts +1 -1
- package/dist/phaser/core/timer.d.ts.map +1 -1
- package/dist/phaser/core/timer_event.d.ts.map +1 -1
- package/dist/phaser/core/tween.d.ts +10 -7
- package/dist/phaser/core/tween.d.ts.map +1 -1
- package/dist/phaser/core/tween_data.d.ts +3 -2
- package/dist/phaser/core/tween_data.d.ts.map +1 -1
- package/dist/phaser/core/tween_easing.d.ts.map +1 -1
- package/dist/phaser/core/tween_manager.d.ts +3 -2
- package/dist/phaser/core/tween_manager.d.ts.map +1 -1
- package/dist/phaser/core/world.d.ts +3 -2
- package/dist/phaser/core/world.d.ts.map +1 -1
- package/dist/phaser/display/bitmap_text.d.ts +3 -2
- package/dist/phaser/display/bitmap_text.d.ts.map +1 -1
- package/dist/phaser/display/button.d.ts +3 -2
- package/dist/phaser/display/button.d.ts.map +1 -1
- package/dist/phaser/display/canvas/buffer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/graphics.d.ts +7 -6
- package/dist/phaser/display/canvas/graphics.d.ts.map +1 -1
- package/dist/phaser/display/canvas/pool.d.ts +2 -2
- package/dist/phaser/display/canvas/pool.d.ts.map +1 -1
- package/dist/phaser/display/canvas/renderer.d.ts +10 -8
- package/dist/phaser/display/canvas/renderer.d.ts.map +1 -1
- package/dist/phaser/display/canvas/tinter.d.ts +3 -2
- package/dist/phaser/display/canvas/tinter.d.ts.map +1 -1
- package/dist/phaser/display/canvas/util.d.ts +2 -2
- package/dist/phaser/display/canvas/util.d.ts.map +1 -1
- package/dist/phaser/display/display_object.d.ts +14 -12
- package/dist/phaser/display/display_object.d.ts.map +1 -1
- package/dist/phaser/display/graphics.d.ts +8 -5
- package/dist/phaser/display/graphics.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/graphics_data_util.d.ts.map +1 -1
- package/dist/phaser/display/group.d.ts +4 -3
- package/dist/phaser/display/group.d.ts.map +1 -1
- package/dist/phaser/display/image.d.ts +13 -10
- package/dist/phaser/display/image.d.ts.map +1 -1
- package/dist/phaser/display/sprite_batch.d.ts +3 -2
- package/dist/phaser/display/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/sprite_util.d.ts +18 -15
- package/dist/phaser/display/sprite_util.d.ts.map +1 -1
- package/dist/phaser/display/text.d.ts +11 -9
- package/dist/phaser/display/text.d.ts.map +1 -1
- package/dist/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
- package/dist/phaser/display/webgl/base_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts +0 -1
- package/dist/phaser/display/webgl/blend_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts +1 -1
- package/dist/phaser/display/webgl/earcut.d.ts.map +1 -1
- package/dist/phaser/display/webgl/earcut_node.d.ts.map +1 -1
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts +4 -3
- package/dist/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts +2 -1
- package/dist/phaser/display/webgl/filter_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics.d.ts +7 -6
- package/dist/phaser/display/webgl/graphics.d.ts.map +1 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts +2 -1
- package/dist/phaser/display/webgl/graphics_data.d.ts.map +1 -1
- package/dist/phaser/display/webgl/render_texture.d.ts +4 -2
- package/dist/phaser/display/webgl/render_texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/renderer.d.ts +16 -11
- package/dist/phaser/display/webgl/renderer.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/complex.d.ts +16 -6
- package/dist/phaser/display/webgl/shader/complex.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/fast.d.ts +19 -7
- package/dist/phaser/display/webgl/shader/fast.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/normal.d.ts +33 -12
- package/dist/phaser/display/webgl/shader/normal.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/primitive.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader/strip.d.ts +15 -6
- package/dist/phaser/display/webgl/shader/strip.d.ts.map +1 -1
- package/dist/phaser/display/webgl/shader_manager.d.ts +16 -11
- package/dist/phaser/display/webgl/shader_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/sprite_batch.d.ts +29 -20
- package/dist/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
- package/dist/phaser/display/webgl/stencil_manager.d.ts +12 -10
- package/dist/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture.d.ts +3 -2
- package/dist/phaser/display/webgl/texture.d.ts.map +1 -1
- package/dist/phaser/display/webgl/texture_util.d.ts.map +1 -1
- package/dist/phaser/display/webgl/util.d.ts.map +1 -1
- package/dist/phaser/geom/circle.d.ts +4 -1
- package/dist/phaser/geom/circle.d.ts.map +1 -1
- package/dist/phaser/geom/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/line.d.ts +1 -1
- package/dist/phaser/geom/line.d.ts.map +1 -1
- package/dist/phaser/geom/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/point.d.ts.map +1 -1
- package/dist/phaser/geom/polygon.d.ts.map +1 -1
- package/dist/phaser/geom/rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/rounded_rectangle.d.ts.map +1 -1
- package/dist/phaser/geom/util/circle.d.ts.map +1 -1
- package/dist/phaser/geom/util/ellipse.d.ts +3 -2
- package/dist/phaser/geom/util/ellipse.d.ts.map +1 -1
- package/dist/phaser/geom/util/line.d.ts.map +1 -1
- package/dist/phaser/geom/util/matrix.d.ts +2 -2
- package/dist/phaser/geom/util/matrix.d.ts.map +1 -1
- package/dist/phaser/geom/util/point.d.ts.map +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts +1 -1
- package/dist/phaser/geom/util/rectangle.d.ts.map +1 -1
- package/dist/phaser/util/math.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/phaser/core/animation.ts +64 -60
- package/src/phaser/core/animation_manager.ts +50 -53
- package/src/phaser/core/animation_parser.ts +9 -9
- package/src/phaser/core/array_set.ts +16 -17
- package/src/phaser/core/cache.ts +92 -93
- package/src/phaser/core/const.ts +1 -1
- package/src/phaser/core/device.ts +24 -29
- package/src/phaser/core/device_util.ts +22 -26
- package/src/phaser/core/dom.ts +54 -65
- package/src/phaser/core/event_manager.ts +64 -94
- package/src/phaser/core/factory.ts +14 -14
- package/src/phaser/core/frame.ts +28 -28
- package/src/phaser/core/frame_data.test.ts +100 -0
- package/src/phaser/core/frame_data.ts +24 -24
- package/src/phaser/core/frame_util.ts +2 -2
- package/src/phaser/core/game.ts +47 -48
- package/src/phaser/core/input.ts +104 -110
- package/src/phaser/core/input_handler.test.ts +113 -0
- package/src/phaser/core/input_handler.ts +199 -218
- package/src/phaser/core/input_mouse.ts +71 -54
- package/src/phaser/core/input_mspointer.ts +52 -39
- package/src/phaser/core/input_pointer.ts +81 -80
- package/src/phaser/core/input_touch.ts +49 -36
- package/src/phaser/core/loader.ts +173 -152
- package/src/phaser/core/loader_parser.ts +39 -57
- package/src/phaser/core/raf.ts +8 -7
- package/src/phaser/core/registry.test.ts +31 -0
- package/src/phaser/core/registry.ts +9 -0
- package/src/phaser/core/scale_manager.ts +156 -152
- package/src/phaser/core/scene.ts +9 -13
- package/src/phaser/core/scene_manager.ts +47 -47
- package/src/phaser/core/signal.test.ts +4 -4
- package/src/phaser/core/signal.ts +41 -52
- package/src/phaser/core/signal_binding.ts +26 -25
- package/src/phaser/core/signal_dispatch.test.ts +180 -0
- package/src/phaser/core/sound.ts +75 -83
- package/src/phaser/core/sound_manager.ts +52 -51
- package/src/phaser/core/sound_sprite.ts +17 -16
- package/src/phaser/core/stage.ts +25 -24
- package/src/phaser/core/time.ts +52 -52
- package/src/phaser/core/timer.test.ts +187 -0
- package/src/phaser/core/timer.ts +82 -69
- package/src/phaser/core/timer_event.ts +10 -10
- package/src/phaser/core/tween.ts +90 -93
- package/src/phaser/core/tween_data.ts +45 -51
- package/src/phaser/core/tween_easing.test.ts +106 -0
- package/src/phaser/core/tween_easing.ts +151 -123
- package/src/phaser/core/tween_manager.ts +19 -18
- package/src/phaser/core/world.ts +4 -3
- package/src/phaser/display/bitmap_text.ts +56 -64
- package/src/phaser/display/button.ts +33 -32
- package/src/phaser/display/canvas/buffer.ts +8 -8
- package/src/phaser/display/canvas/graphics.ts +36 -37
- package/src/phaser/display/canvas/masker.ts +2 -2
- package/src/phaser/display/canvas/pool.test.ts +106 -0
- package/src/phaser/display/canvas/pool.ts +25 -27
- package/src/phaser/display/canvas/renderer.ts +32 -31
- package/src/phaser/display/canvas/tinter.ts +25 -25
- package/src/phaser/display/canvas/util.ts +7 -10
- package/src/phaser/display/display_object.ts +114 -118
- package/src/phaser/display/graphics.ts +121 -119
- package/src/phaser/display/graphics_data.ts +12 -12
- package/src/phaser/display/graphics_data_util.ts +2 -3
- package/src/phaser/display/group.ts +50 -57
- package/src/phaser/display/image.ts +55 -52
- package/src/phaser/display/sprite_batch.ts +3 -2
- package/src/phaser/display/sprite_util.ts +48 -54
- package/src/phaser/display/text.ts +199 -204
- package/src/phaser/display/webgl/abstract_filter.ts +9 -9
- package/src/phaser/display/webgl/base_texture.ts +21 -24
- package/src/phaser/display/webgl/blend_manager.ts +6 -10
- package/src/phaser/display/webgl/earcut.ts +73 -37
- package/src/phaser/display/webgl/earcut_node.ts +10 -10
- package/src/phaser/display/webgl/fast_sprite_batch.ts +34 -34
- package/src/phaser/display/webgl/filter_manager.ts +13 -12
- package/src/phaser/display/webgl/filter_texture.ts +14 -13
- package/src/phaser/display/webgl/graphics.ts +51 -57
- package/src/phaser/display/webgl/graphics_data.ts +15 -14
- package/src/phaser/display/webgl/mask_manager.ts +2 -2
- package/src/phaser/display/webgl/render_texture.ts +26 -25
- package/src/phaser/display/webgl/renderer.ts +57 -62
- package/src/phaser/display/webgl/shader/complex.ts +28 -12
- package/src/phaser/display/webgl/shader/fast.ts +30 -12
- package/src/phaser/display/webgl/shader/normal.ts +70 -57
- package/src/phaser/display/webgl/shader/primitive.ts +26 -11
- package/src/phaser/display/webgl/shader/shader.test.ts +148 -0
- package/src/phaser/display/webgl/shader/strip.ts +27 -12
- package/src/phaser/display/webgl/shader_manager.test.ts +124 -0
- package/src/phaser/display/webgl/shader_manager.ts +26 -34
- package/src/phaser/display/webgl/sprite_batch.ts +67 -61
- package/src/phaser/display/webgl/stencil_manager.ts +23 -34
- package/src/phaser/display/webgl/texture.ts +43 -50
- package/src/phaser/display/webgl/texture_util.ts +2 -3
- package/src/phaser/display/webgl/util.ts +26 -25
- package/src/phaser/geom/circle.test.ts +2 -3
- package/src/phaser/geom/circle.ts +36 -36
- package/src/phaser/geom/ellipse.test.ts +73 -71
- package/src/phaser/geom/ellipse.ts +14 -14
- package/src/phaser/geom/line.test.ts +5 -5
- package/src/phaser/geom/line.ts +35 -35
- package/src/phaser/geom/matrix.test.ts +1 -1
- package/src/phaser/geom/matrix.ts +27 -27
- package/src/phaser/geom/point.test.ts +1 -2
- package/src/phaser/geom/point.ts +35 -35
- package/src/phaser/geom/polygon.test.ts +82 -0
- package/src/phaser/geom/polygon.ts +16 -16
- package/src/phaser/geom/rectangle.test.ts +14 -14
- package/src/phaser/geom/rectangle.ts +83 -75
- package/src/phaser/geom/rounded_rectangle.test.ts +1 -7
- package/src/phaser/geom/rounded_rectangle.ts +9 -9
- package/src/phaser/geom/util/circle.test.ts +25 -23
- package/src/phaser/geom/util/circle.ts +9 -18
- package/src/phaser/geom/util/ellipse.test.ts +7 -5
- package/src/phaser/geom/util/ellipse.ts +3 -2
- package/src/phaser/geom/util/line.test.ts +10 -8
- package/src/phaser/geom/util/line.ts +6 -16
- package/src/phaser/geom/util/matrix.test.ts +20 -18
- package/src/phaser/geom/util/matrix.ts +8 -15
- package/src/phaser/geom/util/point.test.ts +8 -6
- package/src/phaser/geom/util/point.ts +24 -28
- package/src/phaser/geom/util/polygon.test.ts +12 -10
- package/src/phaser/geom/util/polygon.ts +2 -2
- package/src/phaser/geom/util/rectangle.test.ts +10 -8
- package/src/phaser/geom/util/rectangle.ts +18 -37
- package/src/phaser/geom/util/rounded_rectangle.test.ts +11 -9
- package/src/phaser/geom/util/rounded_rectangle.ts +1 -1
- package/src/phaser/util/math.test.ts +11 -11
- package/src/phaser/util/math.ts +29 -46
|
@@ -1,29 +1,30 @@
|
|
|
1
|
+
import type { Signal } from './signal.js';
|
|
1
2
|
export class SignalBinding {
|
|
2
|
-
_signal: any;
|
|
3
|
-
_listener: any;
|
|
4
|
-
_args: any;
|
|
5
|
-
_priority: number;
|
|
6
|
-
_isOnce: boolean;
|
|
7
|
-
context: any;
|
|
8
|
-
callCount: number;
|
|
9
|
-
active: boolean;
|
|
10
|
-
params: any;
|
|
3
|
+
public _signal: any;
|
|
4
|
+
public _listener: any;
|
|
5
|
+
public _args: any;
|
|
6
|
+
public _priority: number;
|
|
7
|
+
public _isOnce: boolean;
|
|
8
|
+
public context: any;
|
|
9
|
+
public callCount: number;
|
|
10
|
+
public active: boolean;
|
|
11
|
+
public params: any;
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* TBD.
|
|
14
|
-
* @param {
|
|
15
|
+
* @param {Signal} signal - TBD.
|
|
15
16
|
* @param {Function} listener - TBD.
|
|
16
17
|
* @param {boolean} isOnce - TBD.
|
|
17
18
|
* @param {object} listenerContext - TBD.
|
|
18
19
|
* @param {number} priority - TBD.
|
|
19
20
|
* @param {...any} args - TBD.
|
|
20
21
|
*/
|
|
21
|
-
constructor(
|
|
22
|
-
signal:
|
|
22
|
+
public constructor(
|
|
23
|
+
signal: Signal,
|
|
23
24
|
listener: Function,
|
|
24
|
-
isOnce
|
|
25
|
+
isOnce = false,
|
|
25
26
|
listenerContext: any | null = null,
|
|
26
|
-
priority
|
|
27
|
+
priority = 0,
|
|
27
28
|
args: any = null
|
|
28
29
|
) {
|
|
29
30
|
this._signal = signal;
|
|
@@ -42,10 +43,10 @@ export class SignalBinding {
|
|
|
42
43
|
* @param {any[]} paramsArr - TBD.
|
|
43
44
|
* @returns {Function} TBD.
|
|
44
45
|
*/
|
|
45
|
-
execute(paramsArr: any[]) {
|
|
46
|
+
public execute(paramsArr: any[]) {
|
|
46
47
|
let handlerReturn;
|
|
47
48
|
let params;
|
|
48
|
-
if (this.active &&
|
|
49
|
+
if (this.active && Boolean(this._listener)) {
|
|
49
50
|
params = this.params ? this.params.concat(paramsArr) : paramsArr;
|
|
50
51
|
if (this._args) {
|
|
51
52
|
params = params.concat(this._args);
|
|
@@ -63,7 +64,7 @@ export class SignalBinding {
|
|
|
63
64
|
* TBD.
|
|
64
65
|
* @returns {Function} TBD.
|
|
65
66
|
*/
|
|
66
|
-
detach() {
|
|
67
|
+
public detach() {
|
|
67
68
|
return this.isBound() ? this._signal.remove(this._listener, this.context) : null;
|
|
68
69
|
}
|
|
69
70
|
|
|
@@ -71,15 +72,15 @@ export class SignalBinding {
|
|
|
71
72
|
* TBD.
|
|
72
73
|
* @returns {boolean} TBD.
|
|
73
74
|
*/
|
|
74
|
-
isBound() {
|
|
75
|
-
return
|
|
75
|
+
public isBound() {
|
|
76
|
+
return Boolean(this._signal) && Boolean(this._listener);
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
/**
|
|
79
80
|
* TBD.
|
|
80
81
|
* @returns {boolean} TBD.
|
|
81
82
|
*/
|
|
82
|
-
isOnce() {
|
|
83
|
+
public isOnce() {
|
|
83
84
|
return this._isOnce;
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -87,22 +88,22 @@ export class SignalBinding {
|
|
|
87
88
|
* TBD.
|
|
88
89
|
* @returns {Function} TBD.
|
|
89
90
|
*/
|
|
90
|
-
getListener() {
|
|
91
|
+
public getListener() {
|
|
91
92
|
return this._listener;
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
96
|
* TBD.
|
|
96
|
-
* @returns {
|
|
97
|
+
* @returns {Signal} TBD.
|
|
97
98
|
*/
|
|
98
|
-
getSignal() {
|
|
99
|
+
public getSignal() {
|
|
99
100
|
return this._signal;
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
/**
|
|
103
104
|
* TBD.
|
|
104
105
|
*/
|
|
105
|
-
_destroy() {
|
|
106
|
+
public _destroy() {
|
|
106
107
|
delete this._signal;
|
|
107
108
|
delete this._listener;
|
|
108
109
|
delete this.context;
|
|
@@ -112,7 +113,7 @@ export class SignalBinding {
|
|
|
112
113
|
* TBD.
|
|
113
114
|
* @returns {string} TBD.
|
|
114
115
|
*/
|
|
115
|
-
toString() {
|
|
116
|
+
public toString() {
|
|
116
117
|
return `[SignalBinding isOnce:${this._isOnce}, isBound:${this.isBound()}, active:${this.active}]`;
|
|
117
118
|
}
|
|
118
119
|
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { Signal } from './signal.js';
|
|
3
|
+
|
|
4
|
+
describe('Signal binding management', () => {
|
|
5
|
+
describe('add', () => {
|
|
6
|
+
it('registers a listener and reports it', () => {
|
|
7
|
+
const signal = new Signal();
|
|
8
|
+
const listener = vi.fn();
|
|
9
|
+
signal.add(listener);
|
|
10
|
+
expect(signal.getNumListeners()).toBe(1);
|
|
11
|
+
expect(signal.has(listener)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('returns the existing binding when the same listener is added twice', () => {
|
|
15
|
+
const signal = new Signal();
|
|
16
|
+
const listener = vi.fn();
|
|
17
|
+
const first = signal.add(listener);
|
|
18
|
+
const second = signal.add(listener);
|
|
19
|
+
expect(second).toBe(first);
|
|
20
|
+
expect(signal.getNumListeners()).toBe(1);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('treats the same listener under a different context as a separate binding', () => {
|
|
24
|
+
const signal = new Signal();
|
|
25
|
+
const listener = vi.fn();
|
|
26
|
+
signal.add(listener, { id: 1 });
|
|
27
|
+
signal.add(listener, { id: 2 });
|
|
28
|
+
expect(signal.getNumListeners()).toBe(2);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('refuses to switch a listener between add and addOnce', () => {
|
|
32
|
+
const signal = new Signal();
|
|
33
|
+
const listener = vi.fn();
|
|
34
|
+
signal.add(listener);
|
|
35
|
+
expect(() => signal.addOnce(listener)).toThrow(/without removing the relationship first/);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe('dispatch', () => {
|
|
40
|
+
it('calls listeners in priority order, highest first', () => {
|
|
41
|
+
const signal = new Signal();
|
|
42
|
+
const order: string[] = [];
|
|
43
|
+
signal.add(() => order.push('low'), null, 0);
|
|
44
|
+
signal.add(() => order.push('high'), null, 10);
|
|
45
|
+
signal.add(() => order.push('mid'), null, 5);
|
|
46
|
+
signal.dispatch();
|
|
47
|
+
expect(order).toStrictEqual(['high', 'mid', 'low']);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('forwards its arguments', () => {
|
|
51
|
+
const signal = new Signal();
|
|
52
|
+
const listener = vi.fn();
|
|
53
|
+
signal.add(listener);
|
|
54
|
+
signal.dispatch(1, 'two');
|
|
55
|
+
expect(listener).toHaveBeenCalledWith(1, 'two');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('removes an addOnce listener after it fires', () => {
|
|
59
|
+
const signal = new Signal();
|
|
60
|
+
const listener = vi.fn();
|
|
61
|
+
signal.addOnce(listener);
|
|
62
|
+
signal.dispatch();
|
|
63
|
+
signal.dispatch();
|
|
64
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
65
|
+
expect(signal.getNumListeners()).toBe(0);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('stops propagating once a listener returns false', () => {
|
|
69
|
+
const signal = new Signal();
|
|
70
|
+
const later = vi.fn();
|
|
71
|
+
signal.add(() => false, null, 10);
|
|
72
|
+
signal.add(later, null, 0);
|
|
73
|
+
signal.dispatch();
|
|
74
|
+
expect(later).not.toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('stops propagating once halt is called', () => {
|
|
78
|
+
const signal = new Signal();
|
|
79
|
+
const later = vi.fn();
|
|
80
|
+
signal.add(
|
|
81
|
+
() => {
|
|
82
|
+
signal.halt();
|
|
83
|
+
},
|
|
84
|
+
null,
|
|
85
|
+
10
|
|
86
|
+
);
|
|
87
|
+
signal.add(later, null, 0);
|
|
88
|
+
signal.dispatch();
|
|
89
|
+
expect(later).not.toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('survives a listener that removes every listener mid-dispatch', () => {
|
|
93
|
+
const signal = new Signal();
|
|
94
|
+
const later = vi.fn();
|
|
95
|
+
signal.add(
|
|
96
|
+
() => {
|
|
97
|
+
signal.removeAll();
|
|
98
|
+
},
|
|
99
|
+
null,
|
|
100
|
+
10
|
|
101
|
+
);
|
|
102
|
+
signal.add(later, null, 0);
|
|
103
|
+
expect(() => {
|
|
104
|
+
signal.dispatch();
|
|
105
|
+
}).not.toThrow();
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
describe('remove', () => {
|
|
110
|
+
it('drops the matching binding', () => {
|
|
111
|
+
const signal = new Signal();
|
|
112
|
+
const listener = vi.fn();
|
|
113
|
+
const other = vi.fn();
|
|
114
|
+
signal.add(listener);
|
|
115
|
+
signal.add(other);
|
|
116
|
+
signal.remove(listener);
|
|
117
|
+
expect(signal.getNumListeners()).toBe(1);
|
|
118
|
+
expect(signal.has(listener)).toBe(false);
|
|
119
|
+
expect(signal.has(other)).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('leaves the list alone for an unregistered listener', () => {
|
|
123
|
+
const signal = new Signal();
|
|
124
|
+
signal.add(vi.fn());
|
|
125
|
+
signal.remove(vi.fn());
|
|
126
|
+
expect(signal.getNumListeners()).toBe(1);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
describe('removeAll', () => {
|
|
131
|
+
it('clears every listener when given no context', () => {
|
|
132
|
+
const signal = new Signal();
|
|
133
|
+
signal.add(vi.fn(), { id: 1 });
|
|
134
|
+
signal.add(vi.fn(), { id: 2 });
|
|
135
|
+
signal.removeAll();
|
|
136
|
+
expect(signal.getNumListeners()).toBe(0);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
it('clears only the listeners bound to the given context', () => {
|
|
140
|
+
const signal = new Signal();
|
|
141
|
+
const context = { id: 1 };
|
|
142
|
+
signal.add(vi.fn(), context);
|
|
143
|
+
signal.add(vi.fn(), { id: 2 });
|
|
144
|
+
signal.removeAll(context);
|
|
145
|
+
expect(signal.getNumListeners()).toBe(1);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
describe('memorize', () => {
|
|
150
|
+
it('replays the last dispatch to a listener added afterwards', () => {
|
|
151
|
+
const signal = new Signal();
|
|
152
|
+
signal.memorize = true;
|
|
153
|
+
signal.add(vi.fn());
|
|
154
|
+
signal.dispatch('remembered');
|
|
155
|
+
const listener = vi.fn();
|
|
156
|
+
signal.add(listener);
|
|
157
|
+
expect(listener).toHaveBeenCalledWith('remembered');
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('records nothing while the signal has never had a binding', () => {
|
|
161
|
+
const signal = new Signal();
|
|
162
|
+
signal.memorize = true;
|
|
163
|
+
signal.dispatch('dropped');
|
|
164
|
+
const listener = vi.fn();
|
|
165
|
+
signal.add(listener);
|
|
166
|
+
expect(listener).not.toHaveBeenCalled();
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
it('stops replaying once forgotten', () => {
|
|
170
|
+
const signal = new Signal();
|
|
171
|
+
signal.memorize = true;
|
|
172
|
+
signal.add(vi.fn());
|
|
173
|
+
signal.dispatch('remembered');
|
|
174
|
+
signal.forget();
|
|
175
|
+
const listener = vi.fn();
|
|
176
|
+
signal.add(listener);
|
|
177
|
+
expect(listener).not.toHaveBeenCalled();
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
});
|
package/src/phaser/core/sound.ts
CHANGED
|
@@ -1,73 +1,67 @@
|
|
|
1
1
|
import { Signal } from './signal.js';
|
|
2
|
+
import type { Game } from './game.js';
|
|
3
|
+
import type { Tween } from './tween.js';
|
|
2
4
|
|
|
3
5
|
export class Sound {
|
|
4
|
-
_paused!: any;
|
|
5
|
-
game!:
|
|
6
|
-
name!: string;
|
|
7
|
-
key!: string;
|
|
8
|
-
loop!: boolean;
|
|
9
|
-
markers!: any;
|
|
10
|
-
context!: AudioContext;
|
|
11
|
-
autoplay!: boolean;
|
|
12
|
-
totalDuration!: number;
|
|
13
|
-
startTime!: number;
|
|
14
|
-
currentTime!: number;
|
|
15
|
-
duration!: number;
|
|
16
|
-
durationMS!: number;
|
|
17
|
-
position!: number;
|
|
18
|
-
stopTime!: number;
|
|
19
|
-
paused!: boolean;
|
|
20
|
-
pausedPosition!: number;
|
|
21
|
-
pausedTime!: number;
|
|
22
|
-
isPlaying!: boolean;
|
|
23
|
-
currentMarker!: string;
|
|
24
|
-
fadeTween!:
|
|
25
|
-
pendingPlayback!: boolean;
|
|
26
|
-
override!: boolean;
|
|
27
|
-
allowMultiple!: boolean;
|
|
28
|
-
externalNode!: AudioNode | null;
|
|
29
|
-
masterGainNode!: GainNode | null;
|
|
30
|
-
gainNode!: GainNode;
|
|
31
|
-
_sound!: AudioBufferSourceNode;
|
|
32
|
-
_markedToDelete!: boolean;
|
|
33
|
-
_removeFromSoundManager!: boolean;
|
|
34
|
-
onPlay!: Signal;
|
|
35
|
-
onPause!: Signal;
|
|
36
|
-
onResume!: Signal;
|
|
37
|
-
onLoop!: Signal;
|
|
38
|
-
onStop!: Signal;
|
|
39
|
-
onMute!: Signal;
|
|
40
|
-
onMarkerComplete!: Signal;
|
|
41
|
-
onFadeComplete!: Signal;
|
|
42
|
-
_volume!: number;
|
|
43
|
-
_buffer!: AudioBuffer | null;
|
|
44
|
-
_muted!: boolean;
|
|
45
|
-
_tempMarker!: string;
|
|
46
|
-
_tempPosition!: number;
|
|
47
|
-
_tempVolume!: number;
|
|
48
|
-
_tempPause!: number;
|
|
49
|
-
_muteVolume!: number;
|
|
50
|
-
_tempLoop!: boolean;
|
|
6
|
+
public _paused!: any;
|
|
7
|
+
public game!: Game;
|
|
8
|
+
public name!: string;
|
|
9
|
+
public key!: string;
|
|
10
|
+
public loop!: boolean;
|
|
11
|
+
public markers!: any;
|
|
12
|
+
public context!: AudioContext;
|
|
13
|
+
public autoplay!: boolean;
|
|
14
|
+
public totalDuration!: number;
|
|
15
|
+
public startTime!: number;
|
|
16
|
+
public currentTime!: number;
|
|
17
|
+
public duration!: number;
|
|
18
|
+
public durationMS!: number;
|
|
19
|
+
public position!: number;
|
|
20
|
+
public stopTime!: number;
|
|
21
|
+
public paused!: boolean;
|
|
22
|
+
public pausedPosition!: number;
|
|
23
|
+
public pausedTime!: number;
|
|
24
|
+
public isPlaying!: boolean;
|
|
25
|
+
public currentMarker!: string;
|
|
26
|
+
public fadeTween!: Tween | null;
|
|
27
|
+
public pendingPlayback!: boolean;
|
|
28
|
+
public override!: boolean;
|
|
29
|
+
public allowMultiple!: boolean;
|
|
30
|
+
public externalNode!: AudioNode | null;
|
|
31
|
+
public masterGainNode!: GainNode | null;
|
|
32
|
+
public gainNode!: GainNode;
|
|
33
|
+
public _sound!: AudioBufferSourceNode;
|
|
34
|
+
public _markedToDelete!: boolean;
|
|
35
|
+
public _removeFromSoundManager!: boolean;
|
|
36
|
+
public onPlay!: Signal;
|
|
37
|
+
public onPause!: Signal;
|
|
38
|
+
public onResume!: Signal;
|
|
39
|
+
public onLoop!: Signal;
|
|
40
|
+
public onStop!: Signal;
|
|
41
|
+
public onMute!: Signal;
|
|
42
|
+
public onMarkerComplete!: Signal;
|
|
43
|
+
public onFadeComplete!: Signal;
|
|
44
|
+
public _volume!: number;
|
|
45
|
+
public _buffer!: AudioBuffer | null;
|
|
46
|
+
public _muted!: boolean;
|
|
47
|
+
public _tempMarker!: string;
|
|
48
|
+
public _tempPosition!: number;
|
|
49
|
+
public _tempVolume!: number;
|
|
50
|
+
public _tempPause!: number;
|
|
51
|
+
public _muteVolume!: number;
|
|
52
|
+
public _tempLoop!: boolean;
|
|
51
53
|
/**
|
|
52
54
|
* Creates a new Sound instance.
|
|
53
|
-
* @param {
|
|
55
|
+
* @param {Game} game - Reference to the Phaser Game instance.
|
|
54
56
|
* @param {string} key - The key of the sound to play.
|
|
55
57
|
* @param {number} volume - The initial volume level (0.0 to 1.0).
|
|
56
58
|
* @param {boolean} loop - Whether the sound should loop.
|
|
57
59
|
* @param {boolean} connect - Whether to connect to the master gain node.
|
|
58
60
|
*/
|
|
59
|
-
constructor(
|
|
60
|
-
game: import('./game.js').Game,
|
|
61
|
-
key: string,
|
|
62
|
-
volume: number = 1,
|
|
63
|
-
loop: boolean = false,
|
|
64
|
-
connect: boolean | null = null
|
|
65
|
-
) {
|
|
61
|
+
public constructor(game: Game, key: string, volume = 1, loop = false, connect: boolean | null = null) {
|
|
66
62
|
// TODO
|
|
67
63
|
// https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Migrating_from_webkitAudioContext
|
|
68
|
-
|
|
69
|
-
connect = game.sound.connectToMaster;
|
|
70
|
-
}
|
|
64
|
+
connect ??= game.sound.connectToMaster;
|
|
71
65
|
this.game = game;
|
|
72
66
|
this.name = key;
|
|
73
67
|
this.key = key;
|
|
@@ -128,7 +122,7 @@ export class Sound {
|
|
|
128
122
|
* Callback when a sound has been unlocked.
|
|
129
123
|
* @param {string} key - The key of the sound that was unlocked.
|
|
130
124
|
*/
|
|
131
|
-
soundHasUnlocked(key: string) {
|
|
125
|
+
public soundHasUnlocked(key: string) {
|
|
132
126
|
if (key === this.key) {
|
|
133
127
|
this._sound = this.game.cache.getSoundData(this.key);
|
|
134
128
|
this.totalDuration = (this._sound as any).duration;
|
|
@@ -143,7 +137,7 @@ export class Sound {
|
|
|
143
137
|
* @param {number} volume - The volume level (0.0 to 1.0) of the marker.
|
|
144
138
|
* @param {boolean} loop - Whether the marker should loop.
|
|
145
139
|
*/
|
|
146
|
-
addMarker(name: string, start: number, duration
|
|
140
|
+
public addMarker(name: string, start: number, duration = 1, volume = 1, loop = false) {
|
|
147
141
|
this.markers[name] = {
|
|
148
142
|
name,
|
|
149
143
|
start,
|
|
@@ -159,14 +153,14 @@ export class Sound {
|
|
|
159
153
|
* Removes a marker from the sound.
|
|
160
154
|
* @param {string} name - The name of the marker to remove.
|
|
161
155
|
*/
|
|
162
|
-
removeMarker(name: string) {
|
|
156
|
+
public removeMarker(name: string) {
|
|
163
157
|
delete this.markers[name];
|
|
164
158
|
}
|
|
165
159
|
|
|
166
160
|
/**
|
|
167
161
|
* Handler for when the sound ends.
|
|
168
162
|
*/
|
|
169
|
-
onEndedHandler() {
|
|
163
|
+
public onEndedHandler() {
|
|
170
164
|
this._sound.onended = null;
|
|
171
165
|
this.isPlaying = false;
|
|
172
166
|
this.currentTime = this.durationMS;
|
|
@@ -200,7 +194,7 @@ export class Sound {
|
|
|
200
194
|
/**
|
|
201
195
|
* Updates the sound state.
|
|
202
196
|
*/
|
|
203
|
-
update() {
|
|
197
|
+
public update() {
|
|
204
198
|
if (!this.game.cache.checkSoundKey(this.key)) {
|
|
205
199
|
this.destroy();
|
|
206
200
|
return;
|
|
@@ -239,7 +233,7 @@ export class Sound {
|
|
|
239
233
|
* @param {number} volume - The volume level (0.0 to 1.0) to play at.
|
|
240
234
|
* @returns {Sound} This Sound instance for chaining.
|
|
241
235
|
*/
|
|
242
|
-
loopFull(volume: number) {
|
|
236
|
+
public loopFull(volume: number) {
|
|
243
237
|
return this.play(null, 0, volume, true);
|
|
244
238
|
}
|
|
245
239
|
|
|
@@ -252,13 +246,11 @@ export class Sound {
|
|
|
252
246
|
* @param {boolean} forceRestart - Whether to force restarting the sound even if it's already playing.
|
|
253
247
|
* @returns {Sound} This Sound instance for chaining.
|
|
254
248
|
*/
|
|
255
|
-
play(marker: any = '', position: any = 0, volume: any = 1, loop: any = false, forceRestart
|
|
249
|
+
public play(marker: any = '', position: any = 0, volume: any = 1, loop: any = false, forceRestart = true) {
|
|
256
250
|
if (marker === undefined || marker === false || marker === null) {
|
|
257
251
|
marker = '';
|
|
258
252
|
}
|
|
259
|
-
|
|
260
|
-
forceRestart = true;
|
|
261
|
-
}
|
|
253
|
+
forceRestart ??= true;
|
|
262
254
|
|
|
263
255
|
if (this.isPlaying && !this.allowMultiple && !forceRestart && !this.override) {
|
|
264
256
|
// Use Restart instead
|
|
@@ -306,7 +298,7 @@ export class Sound {
|
|
|
306
298
|
return this;
|
|
307
299
|
}
|
|
308
300
|
} else {
|
|
309
|
-
position = position
|
|
301
|
+
position = position ?? 0;
|
|
310
302
|
if (volume === undefined) {
|
|
311
303
|
volume = this._volume;
|
|
312
304
|
}
|
|
@@ -373,14 +365,14 @@ export class Sound {
|
|
|
373
365
|
* @param {number} volume - The volume level (0.0 to 1.0) to play at.
|
|
374
366
|
* @param {boolean} loop - Whether the sound should loop.
|
|
375
367
|
*/
|
|
376
|
-
restart(marker
|
|
368
|
+
public restart(marker = '', position = 0, volume = 1, loop = false) {
|
|
377
369
|
this.play(marker, position, volume, loop, true);
|
|
378
370
|
}
|
|
379
371
|
|
|
380
372
|
/**
|
|
381
373
|
* Pauses the sound.
|
|
382
374
|
*/
|
|
383
|
-
pause() {
|
|
375
|
+
public pause() {
|
|
384
376
|
if (this.isPlaying && this._sound) {
|
|
385
377
|
this.paused = true;
|
|
386
378
|
this.pausedPosition = this.currentTime;
|
|
@@ -394,7 +386,7 @@ export class Sound {
|
|
|
394
386
|
/**
|
|
395
387
|
* Resumes the sound.
|
|
396
388
|
*/
|
|
397
|
-
resume() {
|
|
389
|
+
public resume() {
|
|
398
390
|
if (this.paused && this._sound) {
|
|
399
391
|
const p = Math.max(0, this.position + this.pausedPosition / 1000);
|
|
400
392
|
this._sound = this.context.createBufferSource();
|
|
@@ -426,7 +418,7 @@ export class Sound {
|
|
|
426
418
|
/**
|
|
427
419
|
* Stops the sound.
|
|
428
420
|
*/
|
|
429
|
-
stop() {
|
|
421
|
+
public stop() {
|
|
430
422
|
if (this.isPlaying && this._sound) {
|
|
431
423
|
if (this._sound.stop === undefined) {
|
|
432
424
|
(this._sound as any).noteOff(0);
|
|
@@ -460,7 +452,7 @@ export class Sound {
|
|
|
460
452
|
* @param {boolean} loop - Whether the sound should loop.
|
|
461
453
|
* @param {string} marker - The name of the marker to fade in, or empty string to use current marker.
|
|
462
454
|
*/
|
|
463
|
-
fadeIn(duration: number, loop
|
|
455
|
+
public fadeIn(duration: number, loop = false, marker: string = this.currentMarker) {
|
|
464
456
|
if (this.paused) {
|
|
465
457
|
return;
|
|
466
458
|
}
|
|
@@ -472,7 +464,7 @@ export class Sound {
|
|
|
472
464
|
* Fades out the sound to silence.
|
|
473
465
|
* @param {number} duration - The fade-out duration (in milliseconds).
|
|
474
466
|
*/
|
|
475
|
-
fadeOut(duration: number) {
|
|
467
|
+
public fadeOut(duration: number) {
|
|
476
468
|
this.fadeTo(duration, 0);
|
|
477
469
|
}
|
|
478
470
|
|
|
@@ -481,7 +473,7 @@ export class Sound {
|
|
|
481
473
|
* @param {number} duration - The fade duration (in milliseconds).
|
|
482
474
|
* @param {number} volume - The target volume level (0.0 to 1.0).
|
|
483
475
|
*/
|
|
484
|
-
fadeTo(duration
|
|
476
|
+
public fadeTo(duration = 100, volume = 0) {
|
|
485
477
|
if (!this.isPlaying || this.paused || volume === this.volume) {
|
|
486
478
|
return;
|
|
487
479
|
}
|
|
@@ -492,7 +484,7 @@ export class Sound {
|
|
|
492
484
|
/**
|
|
493
485
|
* Callback when fade completes.
|
|
494
486
|
*/
|
|
495
|
-
fadeComplete() {
|
|
487
|
+
public fadeComplete() {
|
|
496
488
|
this.onFadeComplete.dispatch(this, this.volume);
|
|
497
489
|
if (this.volume === 0) {
|
|
498
490
|
this.stop();
|
|
@@ -503,7 +495,7 @@ export class Sound {
|
|
|
503
495
|
* Destroys the sound and cleans up resources.
|
|
504
496
|
* @param {boolean} remove - Whether to remove the sound from the SoundManager.
|
|
505
497
|
*/
|
|
506
|
-
destroy(remove
|
|
498
|
+
public destroy(remove = true) {
|
|
507
499
|
this._markedToDelete = true;
|
|
508
500
|
this._removeFromSoundManager = remove;
|
|
509
501
|
this.stop();
|
|
@@ -529,15 +521,15 @@ export class Sound {
|
|
|
529
521
|
* Gets the muted state of the sound.
|
|
530
522
|
* @returns {boolean} True if the sound is muted, false otherwise.
|
|
531
523
|
*/
|
|
532
|
-
get mute() {
|
|
524
|
+
public get mute() {
|
|
533
525
|
return this._muted || this.game.sound.mute;
|
|
534
526
|
}
|
|
535
527
|
|
|
536
528
|
/**
|
|
537
529
|
* Sets the muted state of the sound.
|
|
538
530
|
*/
|
|
539
|
-
set mute(value) {
|
|
540
|
-
value = value
|
|
531
|
+
public set mute(value) {
|
|
532
|
+
value = value ?? false;
|
|
541
533
|
if (value === this._muted) {
|
|
542
534
|
return;
|
|
543
535
|
}
|
|
@@ -556,14 +548,14 @@ export class Sound {
|
|
|
556
548
|
* Gets the volume of the sound.
|
|
557
549
|
* @returns {number} The volume level (0.0 to 1.0).
|
|
558
550
|
*/
|
|
559
|
-
get volume() {
|
|
551
|
+
public get volume() {
|
|
560
552
|
return this._volume;
|
|
561
553
|
}
|
|
562
554
|
|
|
563
555
|
/**
|
|
564
556
|
* Sets the volume of the sound.
|
|
565
557
|
*/
|
|
566
|
-
set volume(value) {
|
|
558
|
+
public set volume(value) {
|
|
567
559
|
if (this._muted) {
|
|
568
560
|
this._muteVolume = value;
|
|
569
561
|
return;
|