'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', 'cloud_rise_art']; 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)); });