@vpmedia/phaser 1.126.0 → 1.127.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.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -4
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/page_lifecycle.d.ts +49 -0
- package/dist/phaser/core/page_lifecycle.d.ts.map +1 -0
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/index.ts +13 -0
- package/src/phaser/core/page_lifecycle.test.ts +178 -0
- package/src/phaser/core/page_lifecycle.ts +142 -0
- package/src/phaser/core/sound_manager.ts +3 -8
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ export * as Const from './phaser/core/const.js';
|
|
|
2
2
|
export { GameObjectFactory } from './phaser/core/factory.js';
|
|
3
3
|
export { Game } from './phaser/core/game.js';
|
|
4
4
|
export type { GameConfig } from './phaser/core/game.js';
|
|
5
|
+
export { getPageState, onPageStateChange, oncePageActive, PAGE_STATE_ACTIVE, PAGE_STATE_FROZEN, PAGE_STATE_HIDDEN, PAGE_STATE_PASSIVE, PAGE_STATE_TERMINATED, readPageState, startPageLifecycle, } from './phaser/core/page_lifecycle.js';
|
|
6
|
+
export type { PageState, PageStateListener } from './phaser/core/page_lifecycle.js';
|
|
5
7
|
export type { AppliedCallback, Callback, CandidateHandler, EasingFunction, InterpolationFunction, PointerMoveCallback, UserData, } from './phaser/core/callback.js';
|
|
6
8
|
export { Signal } from './phaser/core/signal.js';
|
|
7
9
|
export * as MathUtils from './phaser/util/math.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,uCAAuC,EACvC,mCAAmC,EACnC,6BAA6B,EAC7B,sCAAsC,EACtC,+BAA+B,GAChC,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpF,YAAY,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,uCAAuC,EACvC,mCAAmC,EACnC,6BAA6B,EAC7B,sCAAsC,EACtC,+BAA+B,GAChC,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getLogger } from "@logtape/logtape";
|
|
2
2
|
import { v4 } from "uuid";
|
|
3
|
-
import { PAGE_LIFECYCLE_STATE_ACTIVE, PAGE_LIFECYCLE_STATE_CHANGE_EVENT, addPageLifecycleCallback, getPageLifecycleEventEmitter } from "@vpmedia/simplify";
|
|
4
3
|
//#region \0rolldown/runtime.js
|
|
5
4
|
var __defProp = Object.defineProperty;
|
|
6
5
|
var __exportAll = (all, no_symbols) => {
|
|
@@ -17595,6 +17594,103 @@ var SoundSprite = class {
|
|
|
17595
17594
|
}
|
|
17596
17595
|
};
|
|
17597
17596
|
//#endregion
|
|
17597
|
+
//#region src/phaser/core/page_lifecycle.ts
|
|
17598
|
+
/**
|
|
17599
|
+
* A minimal page lifecycle observer.
|
|
17600
|
+
* @see https://developer.chrome.com/docs/web-platform/page-lifecycle-api
|
|
17601
|
+
*/
|
|
17602
|
+
/** The page is visible and has focus. */
|
|
17603
|
+
const PAGE_STATE_ACTIVE = "active";
|
|
17604
|
+
/** The page is visible but does not have focus. */
|
|
17605
|
+
const PAGE_STATE_PASSIVE = "passive";
|
|
17606
|
+
/** The page is not visible. */
|
|
17607
|
+
const PAGE_STATE_HIDDEN = "hidden";
|
|
17608
|
+
/** The browser has frozen the page to reclaim its resources. */
|
|
17609
|
+
const PAGE_STATE_FROZEN = "frozen";
|
|
17610
|
+
/** The page is being unloaded. */
|
|
17611
|
+
const PAGE_STATE_TERMINATED = "terminated";
|
|
17612
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
17613
|
+
let currentState = null;
|
|
17614
|
+
let started = false;
|
|
17615
|
+
/**
|
|
17616
|
+
* Reads the state the page is in right now.
|
|
17617
|
+
* @returns {PageState} The current page state.
|
|
17618
|
+
*/
|
|
17619
|
+
const readPageState = () => {
|
|
17620
|
+
if (document.visibilityState === "hidden") return PAGE_STATE_HIDDEN;
|
|
17621
|
+
return document.hasFocus() ? PAGE_STATE_ACTIVE : PAGE_STATE_PASSIVE;
|
|
17622
|
+
};
|
|
17623
|
+
/**
|
|
17624
|
+
* Records a new state and tells the listeners, ignoring transitions to the state already held.
|
|
17625
|
+
* @param {PageState} next - The state the page has entered.
|
|
17626
|
+
*/
|
|
17627
|
+
const enterState = (next) => {
|
|
17628
|
+
const previous = currentState ?? readPageState();
|
|
17629
|
+
if (next === previous) return;
|
|
17630
|
+
currentState = next;
|
|
17631
|
+
const current = [...listeners];
|
|
17632
|
+
for (const listener of current) listener(next, previous);
|
|
17633
|
+
};
|
|
17634
|
+
/**
|
|
17635
|
+
* Starts observing the page, if it is not observed already.
|
|
17636
|
+
*/
|
|
17637
|
+
const startPageLifecycle = () => {
|
|
17638
|
+
if (started) return;
|
|
17639
|
+
started = true;
|
|
17640
|
+
currentState = readPageState();
|
|
17641
|
+
for (const type of [
|
|
17642
|
+
"pageshow",
|
|
17643
|
+
"focus",
|
|
17644
|
+
"blur",
|
|
17645
|
+
"visibilitychange",
|
|
17646
|
+
"resume"
|
|
17647
|
+
]) globalThis.addEventListener(type, (event) => {
|
|
17648
|
+
const fromElement = event.target !== globalThis && event.target !== document;
|
|
17649
|
+
if ((event.type === "blur" || event.type === "focus") && fromElement) return;
|
|
17650
|
+
enterState(readPageState());
|
|
17651
|
+
}, true);
|
|
17652
|
+
globalThis.addEventListener("freeze", () => {
|
|
17653
|
+
enterState(PAGE_STATE_FROZEN);
|
|
17654
|
+
}, true);
|
|
17655
|
+
globalThis.addEventListener("pagehide", (event) => {
|
|
17656
|
+
enterState(event.persisted ? PAGE_STATE_FROZEN : PAGE_STATE_TERMINATED);
|
|
17657
|
+
}, true);
|
|
17658
|
+
};
|
|
17659
|
+
/**
|
|
17660
|
+
* Returns the state the page is in, starting the observer on first use.
|
|
17661
|
+
* @returns {PageState} The current page state.
|
|
17662
|
+
*/
|
|
17663
|
+
const getPageState = () => {
|
|
17664
|
+
startPageLifecycle();
|
|
17665
|
+
return currentState ?? readPageState();
|
|
17666
|
+
};
|
|
17667
|
+
/**
|
|
17668
|
+
* Registers a listener for every state change.
|
|
17669
|
+
* @param {PageStateListener} listener - The listener to call on each change.
|
|
17670
|
+
* @returns {() => void} A function that removes the listener again.
|
|
17671
|
+
*/
|
|
17672
|
+
const onPageStateChange = (listener) => {
|
|
17673
|
+
startPageLifecycle();
|
|
17674
|
+
listeners.add(listener);
|
|
17675
|
+
return () => {
|
|
17676
|
+
listeners.delete(listener);
|
|
17677
|
+
};
|
|
17678
|
+
};
|
|
17679
|
+
/**
|
|
17680
|
+
* Runs a callback the next time the page becomes active, once.
|
|
17681
|
+
* @param {() => void} callback - The callback to run.
|
|
17682
|
+
* @returns {() => void} A function that cancels the pending callback.
|
|
17683
|
+
*/
|
|
17684
|
+
const oncePageActive = (callback) => {
|
|
17685
|
+
const stop = onPageStateChange((state) => {
|
|
17686
|
+
if (state === "active") {
|
|
17687
|
+
stop();
|
|
17688
|
+
callback();
|
|
17689
|
+
}
|
|
17690
|
+
});
|
|
17691
|
+
return stop;
|
|
17692
|
+
};
|
|
17693
|
+
//#endregion
|
|
17598
17694
|
//#region src/phaser/core/sound_manager.ts
|
|
17599
17695
|
var SoundManager = class {
|
|
17600
17696
|
game;
|
|
@@ -17686,7 +17782,7 @@ var SoundManager = class {
|
|
|
17686
17782
|
this.masterGain.connect(this.context.destination);
|
|
17687
17783
|
if (this.context.state === "suspended" || this.context.state === "interrupted") this.addUnlockHandlers();
|
|
17688
17784
|
this.context.addEventListener("statechange", this.onContextStateChange, false);
|
|
17689
|
-
|
|
17785
|
+
onPageStateChange(this.onPageLifecycleChange);
|
|
17690
17786
|
}
|
|
17691
17787
|
/**
|
|
17692
17788
|
* Handles page lifecycle changes for audio management.
|
|
@@ -17835,7 +17931,7 @@ var SoundManager = class {
|
|
|
17835
17931
|
error: typedError,
|
|
17836
17932
|
tags: { "asset.key": key }
|
|
17837
17933
|
});
|
|
17838
|
-
if (typedError.name === "InvalidStateError")
|
|
17934
|
+
if (typedError.name === "InvalidStateError") oncePageActive(() => {
|
|
17839
17935
|
this.decode(key);
|
|
17840
17936
|
});
|
|
17841
17937
|
else if (typedError.name === "EncodingError") this._watchList.remove(key);
|
|
@@ -20494,6 +20590,6 @@ var Line = class {
|
|
|
20494
20590
|
}
|
|
20495
20591
|
};
|
|
20496
20592
|
//#endregion
|
|
20497
|
-
export { Animation, AnimationManager, BaseTexture, BitmapText, Button, Cache, Circle, const_exports as Const, DisplayObject, ENGINE_ERROR_CANNOT_SET_FRAME, ENGINE_ERROR_CANNOT_SET_FRAME_NAME, ENGINE_ERROR_CREATING_AUDIO_CONTEXT, ENGINE_ERROR_CREATING_CANVAS_2D_CONTEXT, ENGINE_ERROR_CREATING_WEBGL_CONTEXT, ENGINE_ERROR_GETTING_DOCUMENT, ENGINE_ERROR_INVALID_BITMAP_FONT_ATLAS, ENGINE_ERROR_WEBGL_CONTEXT_LOST, Ellipse, Game, GameObjectFactory, Graphics, Group, Image$1 as Image, Input, Line, Loader, math_exports as MathUtils, Matrix, Point, Pointer, Polygon, Rectangle, RoundedRectangle, ScaleManager, Scene, SceneManager, Signal, Sound, SoundManager, SoundSprite, Text, Texture, Time, Timer, TimerEvent, Tween, TweenData, TweenManager };
|
|
20593
|
+
export { Animation, AnimationManager, BaseTexture, BitmapText, Button, Cache, Circle, const_exports as Const, DisplayObject, ENGINE_ERROR_CANNOT_SET_FRAME, ENGINE_ERROR_CANNOT_SET_FRAME_NAME, ENGINE_ERROR_CREATING_AUDIO_CONTEXT, ENGINE_ERROR_CREATING_CANVAS_2D_CONTEXT, ENGINE_ERROR_CREATING_WEBGL_CONTEXT, ENGINE_ERROR_GETTING_DOCUMENT, ENGINE_ERROR_INVALID_BITMAP_FONT_ATLAS, ENGINE_ERROR_WEBGL_CONTEXT_LOST, Ellipse, Game, GameObjectFactory, Graphics, Group, Image$1 as Image, Input, Line, Loader, math_exports as MathUtils, Matrix, PAGE_STATE_ACTIVE, PAGE_STATE_FROZEN, PAGE_STATE_HIDDEN, PAGE_STATE_PASSIVE, PAGE_STATE_TERMINATED, Point, Pointer, Polygon, Rectangle, RoundedRectangle, ScaleManager, Scene, SceneManager, Signal, Sound, SoundManager, SoundSprite, Text, Texture, Time, Timer, TimerEvent, Tween, TweenData, TweenManager, getPageState, onPageStateChange, oncePageActive, readPageState, startPageLifecycle };
|
|
20498
20594
|
|
|
20499
20595
|
//# sourceMappingURL=index.js.map
|