playcanvas-typings
Version:
TypeScript declaration files for PlayCanvas game engine
167 lines (155 loc) • 7.13 kB
TypeScript
declare namespace pc {
/**
* @name pc.AssetRegistry
* @class Container for all assets that are available to this application
* @description Create an instance of an AssetRegistry.
* Note: PlayCanvas scripts are provided with an AssetRegistry instance as 'app.assets'.
* @param {pc.ResourceLoader} loader The ResourceLoader used to load the asset files.
* @property {String} prefix A URL prefix that will be added to all asset loading requests.
*/
class AssetRegistry {
constructor(loader: pc.ResourceLoader)
/**
* @function
* @name pc.AssetRegistry#list
* @description Create a filtered list of assets from the registry
* @param {Object} filters Properties to filter on, currently supports: 'preload: true|false'
* @returns {pc.Asset[]} The filtered list of assets.
*/
list(filters: {}): pc.Asset[];
/**
* @function
* @name pc.AssetRegistry#add
* @description Add an asset to the registry
* @param {pc.Asset} asset The asset to add
* @example
* var asset = new pc.Asset("My Asset", "texture", {url: "../path/to/image.jpg"});
* app.assets.add(asset);
*/
add(asset: pc.Asset): void;
/**
* @function
* @name pc.AssetRegistry#remove
* @description Remove an asset from the registry
* @param {pc.Asset} asset The asset to remove
* @example
* var asset = app.assets.get(100);
* app.assets.remove(asset);
*/
remove(asset: pc.Asset): void;
/**
* @function
* @name pc.AssetRegistry#get
* @description Retrieve an asset from the registry by its id field
* @param {Number} id the id of the asset to get
* @returns {pc.Asset} The asset
* @example
* var asset = app.assets.get(100);
*/
get(id: number): pc.Asset
/**
* @function
* @name pc.AssetRegistry#getByUrl
* @description Retrieve an asset from the registry by it's file's URL field
* @param {String} url The url of the asset to get
* @returns {pc.Asset} The asset
* @example
* var asset = app.assets.getByUrl("../path/to/image.jpg");
*/
getByUrl(url: string): pc.Asset
/**
* @function
* @name pc.AssetRegistry#load
* @description Load the asset's file from a remote source. Listen for "load" events on the asset to find out when it is loaded
* @param {pc.Asset} asset The asset to load
* @example
* // load some assets
* var toload = [app.assets.find("My Asset"), app.assets.find("Another Asset")]
* var count = 0;
* for (var i = 0; i < toload.length; i++) {
* var asset = toload[i];
* asset.ready(function (asset) {
* count++;
* if (count === toload.length) {
* // done
* }
* });
* app.assets.load(asset)
* }
*/
load(asset: pc.Asset): void;
/**
* @function
* @name pc.AssetRegistry#loadFromUrl
* @description Use this to load and create an asset if you don't have assets created. Usually you would only use this
* if you are not integrated with the PlayCanvas Editor
* @param {String} url The url to load
* @param {String} type The type of asset to load
* @param {Function} callback Function called when asset is loaded, passed (err, asset), where err is null if no errors were encountered
* @example
* app.assets.loadFromUrl("../path/to/texture.jpg", "texture", function (err, asset) {
* var texture = asset.resource;
* });
*/
loadFromUrl(url: string, type: string, callback: (...args: any[]) => {}): void;
/**
* @function
* @name pc.AssetRegistry#findAll
* @description Return all Assets with the specified name and type found in the registry
* @param {String} name The name of the Assets to find
* @param {String} [type] The type of the Assets to find
* @returns {pc.Asset[]} A list of all Assets found
* @example
* var assets = app.assets.findAll("myTextureAsset", "texture");
* console.log("Found " + assets.length + " assets called " + name);
*/
findAll(name: string, type?: string): pc.Asset[];
/**
* @function
* @name pc.AssetRegistry#findByTag
* @description Return all Assets that satisfy the search query.
* Query can be simply a string, or comma separated strings,
* to have inclusive results of assets that match at least one query.
* A query that consists of an array of tags can be used to match assets that have each tag of array
* @param {String} tag Name of a tag or array of tags
* @returns {pc.Asset[]} A list of all Assets matched query
* @example
* var assets = app.assets.findByTag("level-1");
* // returns all assets that tagged by `level-1`
* @example
* var assets = app.assets.findByTag("level-1", "level-2");
* // returns all assets that tagged by `level-1` OR `level-2`
* @example
* var assets = app.assets.findByTag([ "level-1", "monster" ]);
* // returns all assets that tagged by `level-1` AND `monster`
* @example
* var assets = app.assets.findByTag([ "level-1", "monster" ], [ "level-2", "monster" ]);
* // returns all assets that tagged by (`level-1` AND `monster`) OR (`level-2` AND `monster`)
*/
findByTag(tag: string | string[]): pc.Asset[];
/**
* @function
* @name pc.AssetRegistry#filter
* @description Return all Assets that satisfy filter callback
* @param {Function} callback The callback function that is used to filter assets, return `true` to include asset to result list
* @returns {pc.Asset[]} A list of all Assets found
* @example
* var assets = app.assets.filter(function(asset) {
* return asset.name.indexOf('monster') !== -1;
* });
* console.log("Found " + assets.length + " assets, where names contains 'monster'");
*/
filter(callback: (...args: any[]) => {}): pc.Asset[];
/**
* @function
* @name pc.AssetRegistry#find
* @description Return the first Asset with the specified name and type found in the registry
* @param {String} name The name of the Asset to find
* @param {String} [type] The type of the Asset to find
* @returns {pc.Asset} A single Asset or null if no Asset is found
* @example
* var asset = app.assets.find("myTextureAsset", "texture");
*/
find(name: string, type?: string): pc.Asset;
}
}