mirror of
https://github.com/JannisX11/blockbench.git
synced 2024-11-27 04:21:46 +08:00
169 lines
4.5 KiB
JavaScript
169 lines
4.5 KiB
JavaScript
Interface.page_wrapper = document.getElementById('page_wrapper');
|
|
Interface.work_screen = document.getElementById('work_screen');
|
|
Interface.center_screen = document.getElementById('center');
|
|
Interface.right_bar = document.getElementById('right_bar');
|
|
Interface.left_bar = document.getElementById('left_bar');
|
|
Interface.preview = document.getElementById('preview');
|
|
|
|
CustomTheme.setup()
|
|
|
|
StateMemory.init('dialog_paths', 'object')
|
|
|
|
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')) {
|
|
Blockbench.browser = 'edge'
|
|
} else if (!!window.StyleMedia) {
|
|
Blockbench.browser = 'proprietary_edge'
|
|
} else if (!!window.chrome && !window.chrome.webstore) {
|
|
Blockbench.browser = 'chromium'
|
|
}
|
|
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)) {
|
|
alert(capitalizeFirstLetter(Blockbench.browser)+' does not support Blockbench')
|
|
}
|
|
$('.local_only').remove()
|
|
} else {
|
|
$('.web_only').remove()
|
|
}
|
|
BARS.setupActions()
|
|
BARS.setupToolbars()
|
|
BARS.setupVue()
|
|
MenuBar.setup()
|
|
translateUI()
|
|
|
|
Settings.setupProfiles();
|
|
|
|
console.log(`Three.js r${THREE.REVISION}`)
|
|
console.log('%cBlockbench ' + appVersion + (isApp
|
|
? (' Desktop (' + Blockbench.operating_system +')')
|
|
: (' Web ('+capitalizeFirstLetter(Blockbench.browser) + (Blockbench.isPWA ? ', PWA)' : ')'))),
|
|
'border: 2px solid #3e90ff; padding: 4px 8px; font-size: 1.2em;'
|
|
)
|
|
Blockbench.startup_count = parseInt(localStorage.getItem('startups')||0) + 1;
|
|
localStorage.setItem('startups', Blockbench.startup_count);
|
|
|
|
document.getElementById('blackout').addEventListener('click', event => {
|
|
if (typeof open_interface.cancel == 'function' && open_interface.cancel_on_click_outside !== false) {
|
|
open_interface.cancel(event);
|
|
} else if (typeof open_interface == 'string' && open_dialog) {
|
|
$('dialog#'+open_dialog).find('.cancel_btn:not([disabled])').trigger('click');
|
|
}
|
|
})
|
|
|
|
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 });
|
|
}
|
|
|
|
if (Blockbench.startup_count == 1) {
|
|
try {
|
|
jQuery.ajax({
|
|
url: 'https://blckbn.ch/api/event/new_installation',
|
|
type: 'POST',
|
|
data: {}
|
|
})
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
if (Blockbench.startup_count == 3) {
|
|
try {
|
|
jQuery.ajax({
|
|
url: 'https://blckbn.ch/api/event/recurring_user',
|
|
type: 'POST',
|
|
data: {}
|
|
})
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
Blockbench.on('before_closing', (event) => {
|
|
if (!Blockbench.hasFlag('no_localstorage_saving')) {
|
|
Settings.saveLocalStorages()
|
|
}
|
|
})
|
|
|
|
setInterval(function() {
|
|
Prop.fps = framespersecond;
|
|
framespersecond = 0;
|
|
}, 1000)
|
|
|
|
updateProjectResolution()
|
|
|
|
setupInterface()
|
|
setupDragHandlers()
|
|
|
|
onVueSetup.funcs.forEach((func) => {
|
|
if (typeof func === 'function') {
|
|
func()
|
|
}
|
|
})
|
|
|
|
AutoBackup.initialize();
|
|
|
|
if (isApp) {
|
|
initializeDesktopApp();
|
|
} else {
|
|
initializeWebApp();
|
|
}
|
|
|
|
localStorage.setItem('last_version', Blockbench.version);
|
|
|
|
(function() {
|
|
// Promise.any workaround
|
|
let proceeded = false;
|
|
function proceed() {
|
|
if (proceeded) return;
|
|
|
|
Settings.saveLocalStorages();
|
|
if (isApp) {
|
|
loadOpenWithBlockbenchFile();
|
|
ipcRenderer.send('app-loaded');
|
|
} else {
|
|
loadInfoFromURL();
|
|
}
|
|
proceeded = true;
|
|
}
|
|
loadInstalledPlugins().then(proceed);
|
|
setTimeout(proceed, 1200);
|
|
})()
|
|
|
|
setStartScreen(true);
|
|
|
|
document.getElementById('page_wrapper').classList.remove('invisible');
|
|
|
|
Blockbench.setup_successful = true;
|