UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

116 lines 3.46 kB
/** * Utility for loading multiple assets together. * * NOTE: A pre-loader is not intended to be re-used. You have one collection of assets to be loaded, use one {@link AssetPreloader} instance for it. For another batch - use a separate instance. * * @example * const loader = new AssetPreloader(); * * loader.add("/images/cat.jpg", "image", AssetLevel.CRITICAL ); * loader.add("/images/meow.mp3", "sound", AssetLevel.NORMAL ); * * const assetManager:AssetManager = ...; // Obtain your asset manager * * loader.on.progress.add(({global}) => console.log(`loaded ${global.ratio*100}%`)); * loader.on.succeeded.add(()=> console.log("preload complete")); * * loader.load(assetManager); */ export class AssetPreloader { /** * * @return {number} */ get totalAssetCount(): number; /** * * @return {boolean} */ get isResolved(): boolean; /** * @readonly * @type {AssetLoadSpec[][]} */ readonly assets: AssetLoadSpec[][]; /** * @readonly */ readonly on: { /** * @type {Signal<AssetLoadSpec,number>} */ added: Signal<AssetLoadSpec, number>; /** * Progress event. * Note that the numbers are arbitrary and just signify overall progress and not specific quantifies such as bytes or asset counts. * @type {Signal<{global:{current:number, total:number, progress: number}}>} */ progress: Signal<{ global: { current: number; total: number; progress: number; }; }>; /** * Single priority has finished loading * @type {Signal} */ levelFinished: Signal; /** * An asset has failed to load */ error: Signal<any, any, any, any, any, any, any, any>; /** * @type {Signal<{level:number, count:number}[]>} */ started: Signal<{ level: number; count: number; }[]>; /** * Dispatched when all scheduled assets have been successfully loaded (no errors). * @type {Signal<number>} */ succeeded: Signal<number>; /** * All assets are processed, even if some have errored out. * This is a more permissive version of {@link succeeded} signal. * @type {Signal<number,number>} */ resolved: Signal<number, number>; }; /** * * @param {string} uri * @param {string} type * @param {number} [level] defines priority group * @param {number} [priority] defines priority within the group * @return {AssetPreloader} */ add(uri: string, type: string, level?: number, priority?: number): AssetPreloader; /** * * @param {{uri:string, type:string, level?:number}[]} list */ addAll(list: { uri: string; type: string; level?: number; }[]): void; /** * * @param {AssetManager} assetManager * @return {this} */ load(assetManager: AssetManager): this; #private; } /** * @deprecated use {@link AssetPreloader} import instead. Renamed in v2.131.7 * @type {AssetPreloader} */ export const Preloader: AssetPreloader; import { AssetLoadSpec } from "./AssetLoadSpec.js"; import Signal from "../../../core/events/signal/Signal.js"; //# sourceMappingURL=AssetPreloader.d.ts.map