Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$spritesheet$spritesheetAsset.js
2026-07-01 22:38:29 -06:00

66 lines
3.9 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$spritesheet$spritesheetAsset = function(global, require, module, exports) {
function getCacheableAssets(keys, asset, ignoreMultiPack) {
const out = {};
keys.forEach(key => {
out[key] = asset;
});
Object.keys(asset.textures).forEach(key => {
out[`${asset.cachePrefix}${key}`] = asset.textures[key];
});
if (!ignoreMultiPack) {
const basePath = path.path.dirname(keys[0]);
asset.linkedSheets.forEach((item, i) => {
item = getCacheableAssets([`${basePath}/${asset.data.meta.related_multi_packs[i]}`], item, !0);
Object.assign(out, item);
});
}
return out;
}
global = require("module$node_modules$pixi_DOT_js$lib$assets$loader$parsers$LoaderParser");
var Resolver = require("module$node_modules$pixi_DOT_js$lib$assets$resolver$Resolver"), copySearchParams = require("module$node_modules$pixi_DOT_js$lib$assets$utils$copySearchParams");
module = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
var Texture = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$Texture"), path = require("module$node_modules$pixi_DOT_js$lib$utils$path"), Spritesheet = require("module$node_modules$pixi_DOT_js$lib$spritesheet$Spritesheet");
"use strict";
const validImages = "jpg png jpeg avif webp basis etc2 bc7 bc6h bc5 bc4 bc3 bc2 bc1 eac astc".split(" ");
exports.spritesheetAsset = {extension:module.ExtensionType.Asset, cache:{test:asset => asset instanceof Spritesheet.Spritesheet, getCacheableAssets:(keys, asset) => getCacheableAssets(keys, asset, !1)}, resolver:{extension:{type:module.ExtensionType.ResolveParser, name:"resolveSpritesheet"}, test:value => {
var split = value.split("?")[0].split(".");
value = split.pop();
split = split.pop();
return "json" === value && validImages.includes(split);
}, parse:value => {
const split = value.split(".");
return {resolution:parseFloat(Resolver.Resolver.RETINA_PREFIX.exec(value)?.[1] ?? "1"), format:split[split.length - 2], src:value};
}}, loader:{name:"spritesheetLoader", id:"spritesheet", extension:{type:module.ExtensionType.LoadParser, priority:global.LoaderParserPriority.Normal, name:"spritesheetLoader"}, async testParse(asset, options) {
return ".json" === path.path.extname(options.src).toLowerCase() && !!asset.frames;
}, async parse(asset, options, loader) {
const {texture:imageTexture, imageFilename, textureOptions, cachePrefix} = options?.data ?? {};
let basePath = path.path.dirname(options.src);
basePath && basePath.lastIndexOf("/") !== basePath.length - 1 && (basePath += "/");
if (imageTexture instanceof Texture.Texture) {
var texture = imageTexture;
} else {
texture = copySearchParams.copySearchParams(basePath + (imageFilename ?? asset.meta.image), options.src), texture = (await loader.load([{src:texture, data:textureOptions}]))[texture];
}
const spritesheet = new Spritesheet.Spritesheet({texture:texture.source, data:asset, cachePrefix});
await spritesheet.parse();
texture = asset?.meta?.related_multi_packs;
if (Array.isArray(texture)) {
asset = [];
for (const item of texture) {
"string" === typeof item && (texture = basePath + item, options.data?.ignoreMultiPack || (texture = copySearchParams.copySearchParams(texture, options.src), asset.push(loader.load({src:texture, data:{textureOptions, ignoreMultiPack:!0}}))));
}
options = await Promise.all(asset);
spritesheet.linkedSheets = options;
options.forEach(item => {
item.linkedSheets = [spritesheet].concat(spritesheet.linkedSheets.filter(sp => sp !== item));
});
}
return spritesheet;
}, async unload(spritesheet, _resolvedAsset, loader) {
await loader.unload(spritesheet.textureSource._sourceOrigin);
spritesheet.destroy(!1);
}}};
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$spritesheet$spritesheetAsset.js.map