blockbench/js/boot_loader.js

136 lines
3.7 KiB
JavaScript
Raw Normal View History

2019-12-16 03:04:31 +08:00
CustomTheme.setup()
2020-04-26 02:25:07 +08:00
StateMemory.init('dialog_paths', 'object')
2019-12-16 03:04:31 +08:00
initCanvas()
animate()
Blockbench.browser = 'electron'
if (isApp === false) {
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
Blockbench.browser = 'firefox'
} else if (!!window.chrome && !!window.chrome.webstore) {
Blockbench.browser = 'chrome'
} else if ((!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) {
Blockbench.browser = 'opera'
} else if (/constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification))) {
Blockbench.browser = 'safari'
} else if (!!document.documentMode) {
Blockbench.browser = 'internet_explorer'
} else if (!!window.chrome && window.navigator.userAgent.toLowerCase().includes('edg')) {
2019-12-16 03:04:31 +08:00
Blockbench.browser = 'edge'
} else if (!!window.StyleMedia) {
Blockbench.browser = 'proprietary_edge'
} else if (!!window.chrome && !window.chrome.webstore) {
Blockbench.browser = 'chromium'
2019-12-16 03:04:31 +08:00
}
if (navigator.appVersion.indexOf("Win") != -1) Blockbench.operating_system = 'Windows';
if (navigator.appVersion.indexOf("Mac") != -1) Blockbench.operating_system = 'MacOS';
if (navigator.appVersion.indexOf("Linux") != -1) Blockbench.operating_system = 'Linux';
if (['proprietary_edge', 'internet_explorer'].includes(Blockbench.browser)) {
2019-12-16 03:04:31 +08:00
alert(capitalizeFirstLetter(Blockbench.browser)+' does not support Blockbench')
}
$('.local_only').remove()
} else {
$('.web_only').remove()
}
BARS.setupActions()
BARS.setupToolbars()
BARS.setupVue()
MenuBar.setup()
translateUI()
2020-09-16 17:36:07 +08:00
console.log(`Three.js r${THREE.REVISION}`)
2020-03-05 03:56:17 +08:00
console.log('%cBlockbench ' + appVersion + (isApp
2019-12-16 03:04:31 +08:00
? (' Desktop (' + Blockbench.operating_system +')')
: (' Web ('+capitalizeFirstLetter(Blockbench.browser) + (Blockbench.isPWA ? ', PWA)' : ')'))),
'border: 2px solid #3e90ff; padding: 4px 8px; font-size: 1.2em;'
2020-03-05 03:56:17 +08:00
)
2019-12-16 03:04:31 +08:00
var startups = parseInt(localStorage.getItem('startups')||0);
localStorage.setItem('startups', startups+1);
2021-05-22 05:48:39 +08:00
document.getElementById('blackout').addEventListener('click', event => {
2021-06-13 18:35:48 +08:00
if (typeof open_interface.cancel == 'function') {
2021-05-22 05:48:39 +08:00
open_interface.cancel(event);
} else if (typeof open_interface == 'string' && open_dialog) {
$('dialog#'+open_dialog).find('.cancel_btn:not([disabled])').trigger('click');
}
})
2019-12-16 03:04:31 +08:00
if (isApp) {
updateRecentProjects()
}
if (!isApp) {
async function registerSW() {
if ('serviceWorker' in navigator) {
try {
await navigator.serviceWorker.register('./service_worker.js');
} catch (err) {
console.log(err)
}
}
}
registerSW();
}
if (!Blockbench.isWeb || !Blockbench.isPWA) {
$.ajaxSetup({ cache: false });
}
2020-07-16 15:32:59 +08:00
Blockbench.on('before_closing', (event) => {
if (!Blockbench.hasFlag('no_localstorage_saving')) {
Settings.saveLocalStorages()
}
})
2019-12-16 03:04:31 +08:00
setInterval(function() {
Prop.fps = framespersecond;
framespersecond = 0;
}, 1000)
main_uv = new UVEditor('main_uv', false, true)
main_uv.setToMainSlot()
onVueSetup.funcs.forEach((func) => {
if (typeof func === 'function') {
func()
}
})
2020-07-16 15:32:59 +08:00
updateProjectResolution()
2019-12-16 03:04:31 +08:00
setupInterface()
setupDragHandlers()
if (isApp) {
initializeDesktopApp();
} else {
initializeWebApp();
}
2021-01-24 06:24:14 +08:00
localStorage.setItem('last_version', Blockbench.version);
(function() {
// Promise.any workaround
let proceeded = false;
function proceed() {
if (proceeded) return;
if (isApp) {
loadOpenWithBlockbenchFile();
} else {
loadInfoFromURL();
}
proceeded = true;
}
loadInstalledPlugins().then(proceed);
setTimeout(proceed, 1200);
})()
2019-12-23 00:33:55 +08:00
2021-07-07 19:08:56 +08:00
setStartScreen(true);
document.getElementById('page_wrapper').classList.remove('invisible');
2020-04-26 02:25:07 +08:00
2019-12-16 03:04:31 +08:00
Blockbench.setup_successful = true;