frontend/osu/js/jsloader.js
2023-05-22 17:12:06 -04:00

69 lines
1.6 KiB
JavaScript

// delayed js loader
function loadScript(url, callback, aux) {
let script = document.createElement("script");
document.head.appendChild(script);
if (callback)
script.onload = callback;
if (aux) {
for (let key in aux) {
script.setAttribute(key, aux[key]);
}
}
script.src = url;
}
window.beatmaplistLoadedCallback = function () {
window.setTimeout(function () {
loadScript("js/lib/zip.js", function () {
window.zip.workerScriptsPath = 'js/lib/';
loadScript("js/lib/zip-fs.js", checkdep);
});
loadScript("js/lib/pixi.min.js", checkdep);
loadScript("js/lib/mp3parse.min.js", checkdep);
loadScript("js/lib/localforage.min.js", checkdep);
function checkdep() {
if (!window.aaaaa) window.aaaaa = 0;
window.aaaaa += 1;
if (window.aaaaa == 4) {
// load scripts of game
loadScript("js/lib/require.js", function () {
require.config({
paths: {
underscore: 'lib/underscore',
sound: 'lib/sound'
},
shim: {
"underscore": {
exports: "_"
}
},
// urlArgs: "bust=" + (new Date()).getTime()
});
}, {
"data-main": "js/initgame"
});
// load Liked list
if (window.localforage) {
localforage.getItem("likedsidset", function (err, item) {
if (!err) {
if (item && item.size)
window.liked_sid_set = item;
else
window.liked_sid_set = new Set();
for (let i = 0; i < window.liked_sid_set_callbacks.length; ++i)
window.liked_sid_set_callbacks[i]();
window.liked_sid_set_callbacks = [];
} else {
console.error("Favorites list failed to load");
}
});
}
}
}
}, 0);
}