Newer
Older
pixi.js / lib / loaders / spritesheetParser.js
@Matt Karl Matt Karl on 12 Apr 2017 1 KB 4.5.0
'use strict';

exports.__esModule = true;

exports.default = function () {
    return function spritesheetParser(resource, next) {
        var imageResourceName = resource.name + '_image';

        // skip if no data, its not json, it isn't spritesheet data, or the image resource already exists
        if (!resource.data || resource.type !== _resourceLoader.Resource.TYPE.JSON || !resource.data.frames || this.resources[imageResourceName]) {
            next();

            return;
        }

        var loadOptions = {
            crossOrigin: resource.crossOrigin,
            loadType: _resourceLoader.Resource.LOAD_TYPE.IMAGE,
            metadata: resource.metadata.imageMetadata,
            parentResource: resource
        };

        var resourcePath = getResourcePath(resource, this.baseUrl);

        // load the image for this sheet
        this.add(imageResourceName, resourcePath, loadOptions, function onImageLoad(res) {
            var spritesheet = new _core.Spritesheet(res.texture.baseTexture, resource.data, resource.url);

            spritesheet.parse(function () {
                resource.spritesheet = spritesheet;
                resource.textures = spritesheet.textures;
                next();
            });
        });
    };
};

exports.getResourcePath = getResourcePath;

var _resourceLoader = require('resource-loader');

var _url = require('url');

var _url2 = _interopRequireDefault(_url);

var _core = require('../core');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function getResourcePath(resource, baseUrl) {
    // Prepend url path unless the resource image is a data url
    if (resource.isDataUrl) {
        return resource.data.meta.image;
    }

    return _url2.default.resolve(resource.url.replace(baseUrl, ''), resource.data.meta.image);
}
//# sourceMappingURL=spritesheetParser.js.map