UNPKG

@esotericsoftware/spine-pixi-v8

Version:
60 lines 8.95 kB
/** **************************************************************************** * Spine Runtimes License Agreement * Last updated July 28, 2023. Replaces all prior versions. * * Copyright (c) 2013-2023, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software or * otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ import { checkExtension, DOMAdapter, extensions, ExtensionType, LoaderParserPriority } from 'pixi.js'; function isJson(resource) { return Object.prototype.hasOwnProperty.call(resource, 'bones'); } function isBuffer(resource) { return resource instanceof Uint8Array; } const spineLoaderExtension = { extension: ExtensionType.Asset, loader: { extension: { type: ExtensionType.LoadParser, priority: LoaderParserPriority.Normal, name: 'spineSkeletonLoader', }, test(url) { return checkExtension(url, '.skel'); }, async load(url) { const response = await DOMAdapter.get().fetch(url); const buffer = new Uint8Array(await response.arrayBuffer()); return buffer; }, testParse(asset, options) { const isJsonSpineModel = checkExtension(options.src, '.json') && isJson(asset); const isBinarySpineModel = checkExtension(options.src, '.skel') && isBuffer(asset); return Promise.resolve(isJsonSpineModel || isBinarySpineModel); }, }, }; extensions.add(spineLoaderExtension); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b25Mb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXNzZXRzL3NrZWxldG9uTG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBRU4sY0FBYyxFQUNkLFVBQVUsRUFDVixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUVwQixNQUFNLFNBQVMsQ0FBQztBQUtqQixTQUFTLE1BQU0sQ0FBRSxRQUFhO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUUsUUFBYTtJQUMvQixPQUFPLFFBQVEsWUFBWSxVQUFVLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQTREO0lBQ3JGLFNBQVMsRUFBRSxhQUFhLENBQUMsS0FBSztJQUU5QixNQUFNLEVBQUU7UUFDUCxTQUFTLEVBQUU7WUFDVixJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVU7WUFDOUIsUUFBUSxFQUFFLG9CQUFvQixDQUFDLE1BQU07WUFDckMsSUFBSSxFQUFFLHFCQUFxQjtTQUMzQjtRQUVELElBQUksQ0FBRSxHQUFHO1lBQ1IsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFFLEdBQVc7WUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5ELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFFNUQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDO1FBQ0QsU0FBUyxDQUFFLEtBQWMsRUFBRSxPQUFzQjtZQUNoRCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxDQUFDO0tBQ0Q7Q0FDMEQsQ0FBQztBQUU3RCxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBKdWx5IDI4LCAyMDIzLiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjMsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3JcbiAqIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSEVcbiAqIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQge1xuXHR0eXBlIEFzc2V0RXh0ZW5zaW9uLFxuXHRjaGVja0V4dGVuc2lvbixcblx0RE9NQWRhcHRlcixcblx0ZXh0ZW5zaW9ucyxcblx0RXh0ZW5zaW9uVHlwZSxcblx0TG9hZGVyUGFyc2VyUHJpb3JpdHksXG5cdFJlc29sdmVkQXNzZXRcbn0gZnJvbSAncGl4aS5qcyc7XG5cbnR5cGUgU2tlbGV0b25Kc29uQXNzZXQgPSBhbnk7XG50eXBlIFNrZWxldG9uQmluYXJ5QXNzZXQgPSBVaW50OEFycmF5O1xuXG5mdW5jdGlvbiBpc0pzb24gKHJlc291cmNlOiBhbnkpOiByZXNvdXJjZSBpcyBTa2VsZXRvbkpzb25Bc3NldCB7XG5cdHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzb3VyY2UsICdib25lcycpO1xufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAocmVzb3VyY2U6IGFueSk6IHJlc291cmNlIGlzIFNrZWxldG9uQmluYXJ5QXNzZXQge1xuXHRyZXR1cm4gcmVzb3VyY2UgaW5zdGFuY2VvZiBVaW50OEFycmF5O1xufVxuXG5jb25zdCBzcGluZUxvYWRlckV4dGVuc2lvbjogQXNzZXRFeHRlbnNpb248U2tlbGV0b25Kc29uQXNzZXQgfCBTa2VsZXRvbkJpbmFyeUFzc2V0PiA9IHtcblx0ZXh0ZW5zaW9uOiBFeHRlbnNpb25UeXBlLkFzc2V0LFxuXG5cdGxvYWRlcjoge1xuXHRcdGV4dGVuc2lvbjoge1xuXHRcdFx0dHlwZTogRXh0ZW5zaW9uVHlwZS5Mb2FkUGFyc2VyLFxuXHRcdFx0cHJpb3JpdHk6IExvYWRlclBhcnNlclByaW9yaXR5Lk5vcm1hbCxcblx0XHRcdG5hbWU6ICdzcGluZVNrZWxldG9uTG9hZGVyJyxcblx0XHR9LFxuXG5cdFx0dGVzdCAodXJsKSB7XG5cdFx0XHRyZXR1cm4gY2hlY2tFeHRlbnNpb24odXJsLCAnLnNrZWwnKTtcblx0XHR9LFxuXG5cdFx0YXN5bmMgbG9hZCAodXJsOiBzdHJpbmcpOiBQcm9taXNlPFNrZWxldG9uQmluYXJ5QXNzZXQ+IHtcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgRE9NQWRhcHRlci5nZXQoKS5mZXRjaCh1cmwpO1xuXG5cdFx0XHRjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTtcblxuXHRcdFx0cmV0dXJuIGJ1ZmZlcjtcblx0XHR9LFxuXHRcdHRlc3RQYXJzZSAoYXNzZXQ6IHVua25vd24sIG9wdGlvbnM6IFJlc29sdmVkQXNzZXQpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRcdGNvbnN0IGlzSnNvblNwaW5lTW9kZWwgPSBjaGVja0V4dGVuc2lvbihvcHRpb25zLnNyYyEsICcuanNvbicpICYmIGlzSnNvbihhc3NldCk7XG5cdFx0XHRjb25zdCBpc0JpbmFyeVNwaW5lTW9kZWwgPSBjaGVja0V4dGVuc2lvbihvcHRpb25zLnNyYyEsICcuc2tlbCcpICYmIGlzQnVmZmVyKGFzc2V0KTtcblxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShpc0pzb25TcGluZU1vZGVsIHx8IGlzQmluYXJ5U3BpbmVNb2RlbCk7XG5cdFx0fSxcblx0fSxcbn0gYXMgQXNzZXRFeHRlbnNpb248U2tlbGV0b25Kc29uQXNzZXQgfCBTa2VsZXRvbkJpbmFyeUFzc2V0PjtcblxuZXh0ZW5zaW9ucy5hZGQoc3BpbmVMb2FkZXJFeHRlbnNpb24pO1xuIl19