mirror of
https://github.com/photonstorm/phaser
synced 2024-11-27 23:20:59 +00:00
Moving to unified 'add' structure and removing multiatlas
This commit is contained in:
parent
9a974514ff
commit
0390af16e9
6 changed files with 116 additions and 78 deletions
|
@ -110,7 +110,7 @@ var LoaderPlugin = new Class({
|
||||||
* @default {}
|
* @default {}
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
this._multilist = {};
|
// this._multilist = {};
|
||||||
|
|
||||||
// Inject the available filetypes into the Loader
|
// Inject the available filetypes into the Loader
|
||||||
FileTypesManager.install(this);
|
FileTypesManager.install(this);
|
||||||
|
@ -362,7 +362,7 @@ var LoaderPlugin = new Class({
|
||||||
{
|
{
|
||||||
if (!this.isReady())
|
if (!this.isReady())
|
||||||
{
|
{
|
||||||
return -1;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(file))
|
if (Array.isArray(file))
|
||||||
|
@ -666,6 +666,7 @@ var LoaderPlugin = new Class({
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// The global Texture Manager
|
// The global Texture Manager
|
||||||
var cache = this.scene.sys.cache;
|
var cache = this.scene.sys.cache;
|
||||||
var textures = this.scene.sys.textures;
|
var textures = this.scene.sys.textures;
|
||||||
|
@ -717,6 +718,7 @@ var LoaderPlugin = new Class({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Process all of the files
|
// Process all of the files
|
||||||
|
|
||||||
|
@ -843,14 +845,15 @@ var LoaderPlugin = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [description]
|
* Called by the Scene Manager if you specify a files payload for a pre-Scene Boot.
|
||||||
|
* Takes an array of file objects.
|
||||||
*
|
*
|
||||||
* @method Phaser.Loader.LoaderPlugin#loadArray
|
* @method Phaser.Loader.LoaderPlugin#loadArray
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*
|
*
|
||||||
* @param {LoaderFileObject[]} files - [description]
|
* @param {LoaderFileObject[]} files - An array of files to load.
|
||||||
*
|
*
|
||||||
* @return {boolean} [description]
|
* @return {boolean} `true` if any files were successfully added to the list, otherwise `false`.
|
||||||
*/
|
*/
|
||||||
loadArray: function (files)
|
loadArray: function (files)
|
||||||
{
|
{
|
||||||
|
@ -858,59 +861,16 @@ var LoaderPlugin = new Class({
|
||||||
{
|
{
|
||||||
for (var i = 0; i < files.length; i++)
|
for (var i = 0; i < files.length; i++)
|
||||||
{
|
{
|
||||||
this.file(files[i]);
|
var file = files[i];
|
||||||
|
|
||||||
|
// Calls file-type methods like `atlas` or `image`
|
||||||
|
this[file.type](file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (this.list.size > 0);
|
return (this.list.size > 0);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* [description]
|
|
||||||
*
|
|
||||||
* @method Phaser.Loader.LoaderPlugin#file
|
|
||||||
* @since 3.0.0
|
|
||||||
*
|
|
||||||
* @param {LoaderFileObject} file - [description]
|
|
||||||
*
|
|
||||||
* @return {Phaser.Loader.File} [description]
|
|
||||||
*/
|
|
||||||
file: function (file)
|
|
||||||
{
|
|
||||||
var entry;
|
|
||||||
var key = file.key;
|
|
||||||
|
|
||||||
switch (file.type)
|
|
||||||
{
|
|
||||||
case 'spritesheet':
|
|
||||||
entry = this.spritesheet(key, file.url, file.config, file.xhrSettings);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'atlas':
|
|
||||||
entry = this.atlas(key, file.textureURL, file.atlasURL, file.textureXhrSettings, file.atlasXhrSettings);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'bitmapFont':
|
|
||||||
entry = this.bitmapFont(key, file.textureURL, file.xmlURL, file.textureXhrSettings, file.xmlXhrSettings);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'multiatlas':
|
|
||||||
entry = this.multiatlas(key, file.textureURLs, file.atlasURLs, file.textureXhrSettings, file.atlasXhrSettings);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'audioSprite':
|
|
||||||
entry = this.audioSprite(key, file.urls, file.json, file.config, file.audioXhrSettings, file.jsonXhrSettings);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// image, json, xml, binary, text, glsl, svg, obj
|
|
||||||
default:
|
|
||||||
entry = this[file.type](key, file.url, file.xhrSettings);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return entry;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Scene that owns this plugin is shutting down.
|
* The Scene that owns this plugin is shutting down.
|
||||||
* We need to kill and reset all internal properties as well as stop listening to Scene events.
|
* We need to kill and reset all internal properties as well as stop listening to Scene events.
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
var Class = require('../../utils/Class');
|
var Class = require('../../utils/Class');
|
||||||
var FileTypesManager = require('../FileTypesManager');
|
var FileTypesManager = require('../FileTypesManager');
|
||||||
|
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||||
var JSONFile = require('./JSONFile.js');
|
var JSONFile = require('./JSONFile.js');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,20 +74,28 @@ var AnimationJSONFile = new Class({
|
||||||
*/
|
*/
|
||||||
FileTypesManager.register('animation', function (key, url, xhrSettings)
|
FileTypesManager.register('animation', function (key, url, xhrSettings)
|
||||||
{
|
{
|
||||||
|
var file;
|
||||||
|
|
||||||
|
// Supports an Object file definition in the key argument
|
||||||
|
// Or an array of objects in the key argument
|
||||||
|
// Or a single entry where all arguments have been defined
|
||||||
|
|
||||||
if (Array.isArray(key))
|
if (Array.isArray(key))
|
||||||
{
|
{
|
||||||
for (var i = 0; i < key.length; i++)
|
for (var i = 0; i < key.length; i++)
|
||||||
{
|
{
|
||||||
// If it's an array it has to be an array of Objects, so we get everything out of the 'key' object
|
file = new AnimationJSONFile(this, key[i]);
|
||||||
this.addFile(new AnimationJSONFile(this, key[i], url, xhrSettings));
|
|
||||||
|
this.addFile(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.addFile(new AnimationJSONFile(this, key, url, xhrSettings));
|
file = this.addFile(new AnimationJSONFile(this, key, url, xhrSettings));
|
||||||
|
|
||||||
|
this.addFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For method chaining
|
|
||||||
return this;
|
return this;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,9 @@
|
||||||
|
|
||||||
var Class = require('../../utils/Class');
|
var Class = require('../../utils/Class');
|
||||||
var FileTypesManager = require('../FileTypesManager');
|
var FileTypesManager = require('../FileTypesManager');
|
||||||
|
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||||
var ImageFile = require('./ImageFile.js');
|
var ImageFile = require('./ImageFile.js');
|
||||||
|
var IsPlainObject = require('../../utils/object/IsPlainObject');
|
||||||
var JSONFile = require('./JSONFile.js');
|
var JSONFile = require('./JSONFile.js');
|
||||||
var LinkFile = require('../LinkFile.js');
|
var LinkFile = require('../LinkFile.js');
|
||||||
|
|
||||||
|
@ -35,6 +37,17 @@ var AtlasJSONFile = new Class({
|
||||||
|
|
||||||
function AtlasJSONFile (loader, key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings)
|
function AtlasJSONFile (loader, key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings)
|
||||||
{
|
{
|
||||||
|
if (IsPlainObject(key))
|
||||||
|
{
|
||||||
|
var config = key;
|
||||||
|
|
||||||
|
key = GetFastValue(config, 'key');
|
||||||
|
textureURL = GetFastValue(config, 'textureURL');
|
||||||
|
atlasURL = GetFastValue(config, 'atlasURL');
|
||||||
|
textureXhrSettings = GetFastValue(config, 'textureXhrSettings');
|
||||||
|
atlasXhrSettings = GetFastValue(config, 'atlasXhrSettings');
|
||||||
|
}
|
||||||
|
|
||||||
var image = new ImageFile(loader, key, textureURL, textureXhrSettings);
|
var image = new ImageFile(loader, key, textureURL, textureXhrSettings);
|
||||||
var data = new JSONFile(loader, key, atlasURL, atlasXhrSettings);
|
var data = new JSONFile(loader, key, atlasURL, atlasXhrSettings);
|
||||||
|
|
||||||
|
@ -88,18 +101,25 @@ FileTypesManager.register('atlas', function (key, textureURL, atlasURL, textureX
|
||||||
{
|
{
|
||||||
var linkfile;
|
var linkfile;
|
||||||
|
|
||||||
if ((typeof key === 'object') && (key !== null))
|
// Supports an Object file definition in the key argument
|
||||||
|
// Or an array of objects in the key argument
|
||||||
|
// Or a single entry where all arguments have been defined
|
||||||
|
|
||||||
|
if (Array.isArray(key))
|
||||||
{
|
{
|
||||||
// If param key is an object, use object based loading method
|
for (var i = 0; i < key.length; i++)
|
||||||
linkfile = new AtlasJSONFile(this, key.key, key.texture, key.data, textureXhrSettings, atlasXhrSettings);
|
{
|
||||||
|
linkfile = new AtlasJSONFile(this, key[i]);
|
||||||
|
|
||||||
|
this.addFile(linkfile.files);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// else just use the parameters like normal
|
|
||||||
linkfile = new AtlasJSONFile(this, key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings);
|
linkfile = new AtlasJSONFile(this, key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings);
|
||||||
}
|
|
||||||
|
|
||||||
this.addFile(linkfile.files);
|
this.addFile(linkfile.files);
|
||||||
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,6 +9,7 @@ var CONST = require('../const');
|
||||||
var File = require('../File');
|
var File = require('../File');
|
||||||
var FileTypesManager = require('../FileTypesManager');
|
var FileTypesManager = require('../FileTypesManager');
|
||||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||||
|
var IsPlainObject = require('../../utils/object/IsPlainObject');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
|
@ -33,17 +34,27 @@ var BinaryFile = new Class({
|
||||||
|
|
||||||
function BinaryFile (loader, key, url, xhrSettings)
|
function BinaryFile (loader, key, url, xhrSettings)
|
||||||
{
|
{
|
||||||
var fileKey = (typeof key === 'string') ? key : GetFastValue(key, 'key', '');
|
var extension = 'bin';
|
||||||
|
|
||||||
|
if (IsPlainObject(key))
|
||||||
|
{
|
||||||
|
var config = key;
|
||||||
|
|
||||||
|
key = GetFastValue(config, 'key');
|
||||||
|
url = GetFastValue(config, 'url');
|
||||||
|
xhrSettings = GetFastValue(config, 'xhrSettings');
|
||||||
|
extension = GetFastValue(config, 'extension', extension);
|
||||||
|
}
|
||||||
|
|
||||||
var fileConfig = {
|
var fileConfig = {
|
||||||
type: 'binary',
|
type: 'binary',
|
||||||
cache: loader.cacheManager.binary,
|
cache: loader.cacheManager.binary,
|
||||||
extension: GetFastValue(key, 'extension', 'bin'),
|
extension: extension,
|
||||||
responseType: 'arraybuffer',
|
responseType: 'arraybuffer',
|
||||||
key: fileKey,
|
key: key,
|
||||||
url: GetFastValue(key, 'file', url),
|
url: url,
|
||||||
path: loader.path,
|
path: loader.path,
|
||||||
xhrSettings: GetFastValue(key, 'xhr', xhrSettings)
|
xhrSettings: xhrSettings
|
||||||
};
|
};
|
||||||
|
|
||||||
File.call(this, loader, fileConfig);
|
File.call(this, loader, fileConfig);
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
var Class = require('../../utils/Class');
|
var Class = require('../../utils/Class');
|
||||||
var FileTypesManager = require('../FileTypesManager');
|
var FileTypesManager = require('../FileTypesManager');
|
||||||
var ImageFile = require('./ImageFile.js');
|
var ImageFile = require('./ImageFile.js');
|
||||||
|
var IsPlainObject = require('../../utils/object/IsPlainObject');
|
||||||
var LinkFile = require('../LinkFile.js');
|
var LinkFile = require('../LinkFile.js');
|
||||||
var ParseXMLBitmapFont = require('../../gameobjects/bitmaptext/ParseXMLBitmapFont.js');
|
var ParseXMLBitmapFont = require('../../gameobjects/bitmaptext/ParseXMLBitmapFont.js');
|
||||||
var XMLFile = require('./XMLFile.js');
|
var XMLFile = require('./XMLFile.js');
|
||||||
|
@ -34,10 +35,21 @@ var BitmapFontFile = new Class({
|
||||||
|
|
||||||
initialize:
|
initialize:
|
||||||
|
|
||||||
function BitmapFontFile (loader, key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings)
|
function BitmapFontFile (loader, key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings)
|
||||||
{
|
{
|
||||||
|
if (IsPlainObject(key))
|
||||||
|
{
|
||||||
|
var config = key;
|
||||||
|
|
||||||
|
key = GetFastValue(config, 'key');
|
||||||
|
textureURL = GetFastValue(config, 'textureURL');
|
||||||
|
xmlURL = GetFastValue(config, 'xmlURL');
|
||||||
|
textureXhrSettings = GetFastValue(config, 'textureXhrSettings');
|
||||||
|
xmlXhrSettings = GetFastValue(config, 'xmlXhrSettings');
|
||||||
|
}
|
||||||
|
|
||||||
var image = new ImageFile(loader, key, textureURL, textureXhrSettings);
|
var image = new ImageFile(loader, key, textureURL, textureXhrSettings);
|
||||||
var data = new XMLFile(loader, key, atlasURL, atlasXhrSettings);
|
var data = new XMLFile(loader, key, xmlURL, xmlXhrSettings);
|
||||||
|
|
||||||
LinkFile.call(this, loader, 'bitmapfont', key, [ image, data ]);
|
LinkFile.call(this, loader, 'bitmapfont', key, [ image, data ]);
|
||||||
},
|
},
|
||||||
|
@ -95,10 +107,27 @@ var BitmapFontFile = new Class({
|
||||||
*/
|
*/
|
||||||
FileTypesManager.register('bitmapFont', function (key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings)
|
FileTypesManager.register('bitmapFont', function (key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings)
|
||||||
{
|
{
|
||||||
// Returns an object with two properties: 'texture' and 'data'
|
var linkfile;
|
||||||
var linkfile = new BitmapFontFile(this, key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings);
|
|
||||||
|
// Supports an Object file definition in the key argument
|
||||||
|
// Or an array of objects in the key argument
|
||||||
|
// Or a single entry where all arguments have been defined
|
||||||
|
|
||||||
|
if (Array.isArray(key))
|
||||||
|
{
|
||||||
|
for (var i = 0; i < key.length; i++)
|
||||||
|
{
|
||||||
|
linkfile = new BitmapFontFile(this, key[i]);
|
||||||
|
|
||||||
this.addFile(linkfile.files);
|
this.addFile(linkfile.files);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
linkfile = new BitmapFontFile(this, key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings);
|
||||||
|
|
||||||
|
this.addFile(linkfile.files);
|
||||||
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
});
|
});
|
||||||
|
|
|
@ -33,17 +33,27 @@ var GLSLFile = new Class({
|
||||||
|
|
||||||
function GLSLFile (loader, key, url, xhrSettings)
|
function GLSLFile (loader, key, url, xhrSettings)
|
||||||
{
|
{
|
||||||
var fileKey = (typeof key === 'string') ? key : GetFastValue(key, 'key', '');
|
var extension = 'glsl';
|
||||||
|
|
||||||
|
if (IsPlainObject(key))
|
||||||
|
{
|
||||||
|
var config = key;
|
||||||
|
|
||||||
|
key = GetFastValue(config, 'key');
|
||||||
|
url = GetFastValue(config, 'url');
|
||||||
|
xhrSettings = GetFastValue(config, 'xhrSettings');
|
||||||
|
extension = GetFastValue(config, 'extension', extension);
|
||||||
|
}
|
||||||
|
|
||||||
var fileConfig = {
|
var fileConfig = {
|
||||||
type: 'glsl',
|
type: 'glsl',
|
||||||
cache: loader.cacheManager.shader,
|
cache: loader.cacheManager.shader,
|
||||||
extension: GetFastValue(key, 'extension', 'glsl'),
|
extension: extension,
|
||||||
responseType: 'text',
|
responseType: 'text',
|
||||||
key: fileKey,
|
key: key,
|
||||||
url: GetFastValue(key, 'file', url),
|
url: url,
|
||||||
path: loader.path,
|
path: loader.path,
|
||||||
xhrSettings: GetFastValue(key, 'xhr', xhrSettings)
|
xhrSettings: xhrSettings
|
||||||
};
|
};
|
||||||
|
|
||||||
File.call(this, loader, fileConfig);
|
File.call(this, loader, fileConfig);
|
||||||
|
@ -94,7 +104,6 @@ FileTypesManager.register('glsl', function (key, url, xhrSettings)
|
||||||
this.addFile(new GLSLFile(this, key, url, xhrSettings));
|
this.addFile(new GLSLFile(this, key, url, xhrSettings));
|
||||||
}
|
}
|
||||||
|
|
||||||
// For method chaining
|
|
||||||
return this;
|
return this;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue