MatchMaster/packages/cloud-rise-package/runtime.js
2026-09-16 18:19:34 +08:00

26 lines
1.2 KiB
JavaScript

'use strict';
// Installed after the WeChat adapter and before boot. Other bundles keep the engine loader.
const names = ['cloud_rise_matching', 'cloud_rise_stage1', 'cloud_rise_stage2', 'cloud_rise_stage3'];
const downloader = cc.assetManager.downloader;
const original = downloader._downloaders.bundle;
let downloadTask = null;
function preparePackage() {
if (!downloadTask) downloadTask = new Promise((resolve, reject) => {
wx.loadSubpackage({ name: 'cloud_rise', success: () => resolve(), fail: reject });
}).catch(error => { downloadTask = null; throw error; });
return downloadTask;
}
window.__prepareCloudRisePackage = preparePackage;
downloader.register('bundle', function (nameOrUrl, options, onComplete) {
const name = cc.path.basename(nameOrUrl);
if (!names.includes(name)) return original(nameOrUrl, options, onComplete);
preparePackage().then(() => {
const base = 'subpackages/cloud_rise/' + name + '/';
const version = options.version || downloader.bundleVers[name];
window.fsUtils.readJson(base + 'config.' + (version ? version + '.' : '') + 'json', (error, data) => {
if (!error) data.base = base;
onComplete(error, data);
});
}).catch(error => onComplete(error));
});