UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.

86 lines (73 loc) 3.14 kB
/** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ var FileTypesManager = require('../FileTypesManager'); var ImageFile = require('./ImageFile.js'); var JSONFile = require('./JSONFile.js'); /** * An Atlas JSON File. * * @function Phaser.Loader.FileTypes.AtlasJSONFile * @since 3.0.0 * * @param {string} key - The key of the file within the loader. * @param {string} textureURL - The url to load the texture file from. * @param {string} atlasURL - The url to load the atlas file from. * @param {string} path - The path of the file. * @param {XHRSettingsObject} [textureXhrSettings] - Optional texture file specific XHR settings. * @param {XHRSettingsObject} [atlasXhrSettings] - Optional atlas file specific XHR settings. * * @return {object} An object containing two File objects to be added to the loader. */ var AtlasJSONFile = function (key, textureURL, atlasURL, path, textureXhrSettings, atlasXhrSettings) { var image = new ImageFile(key, textureURL, path, textureXhrSettings); var data = new JSONFile(key, atlasURL, path, atlasXhrSettings); // Link them together image.linkFile = data; data.linkFile = image; // Set the type image.linkType = 'atlasjson'; data.linkType = 'atlasjson'; return { texture: image, data: data }; }; /** * Adds a Texture Atlas file to the current load queue. * * Note: This method will only be available if the Atlas JSON File type has been built into Phaser. * * The file is **not** loaded immediately after calling this method. * Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts. * * @method Phaser.Loader.LoaderPlugin#atlas * @since 3.0.0 * * @param {string} key - The key of the file within the loader. * @param {string} textureURL - The url to load the texture file from. * @param {string} atlasURL - The url to load the atlas file from. * @param {XHRSettingsObject} [textureXhrSettings] - Optional texture file specific XHR settings. * @param {XHRSettingsObject} [atlasXhrSettings] - Optional atlas file specific XHR settings. * * @return {Phaser.Loader.LoaderPlugin} The Loader. */ FileTypesManager.register('atlas', function (key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings) { var files; // If param key is an object, use object based loading method if ((typeof key === 'object') && (key !== null)) { files = new AtlasJSONFile(key.key, key.texture, key.data, this.path, textureXhrSettings, atlasXhrSettings); } // Else just use the parameters like normal else { // Returns an object with two properties: 'texture' and 'data' files = new AtlasJSONFile(key, textureURL, atlasURL, this.path, textureXhrSettings, atlasXhrSettings); } this.addFile(files.texture); this.addFile(files.data); return this; }); module.exports = AtlasJSONFile;