@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
116 lines • 3.46 kB
TypeScript
/**
* 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