2019-03-27 02:20:54 +03:00
|
|
|
/**utilities**/
|
2021-07-07 00:24:20 +03:00
|
|
|
//=include lib/cookies.js
|
2021-07-15 17:33:26 +03:00
|
|
|
//=include _jscolor.js
|
2020-03-08 01:13:35 +03:00
|
|
|
//=include _pixelEditorUtility.js
|
2021-07-22 19:57:44 +03:00
|
|
|
//=include _variables.js
|
2021-07-07 00:24:20 +03:00
|
|
|
//=include lib/sortable.js
|
2021-06-29 02:54:54 +03:00
|
|
|
//=include Util.js
|
2021-07-20 23:52:51 +03:00
|
|
|
//=include Events.js
|
2021-07-11 13:40:48 +03:00
|
|
|
//=include Color.js
|
2021-07-14 00:40:23 +03:00
|
|
|
//=include Dialogue.js
|
2021-07-14 23:20:55 +03:00
|
|
|
//=include History.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
|
|
|
/**init**/
|
2020-03-04 17:46:25 +03:00
|
|
|
//=include _consts.js
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _settings.js
|
2021-07-22 23:42:41 +03:00
|
|
|
//=include LayerList.js
|
|
|
|
//=include Layer.js
|
2021-07-22 19:57:44 +03:00
|
|
|
//=include Startup.js
|
|
|
|
//=include _pixelGrid.js
|
|
|
|
//=include _editorMode.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
|
|
|
/**dropdown formatting**/
|
2021-07-15 19:33:19 +03:00
|
|
|
//=include PresetModule.js
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _palettes.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
|
|
|
/**functions**/
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _tools.js
|
|
|
|
//=include tools/*.js
|
|
|
|
//=include _changeZoom.js
|
2021-07-04 20:55:49 +03:00
|
|
|
//=include ColorModule.js
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _drawLine.js
|
|
|
|
//=include _fill.js
|
2021-01-14 21:04:39 +03:00
|
|
|
//=include _line.js
|
2019-03-31 14:28:46 +03:00
|
|
|
//=include _checkerboard.js
|
2020-04-20 17:55:34 +03:00
|
|
|
//=include _copyPaste.js
|
2020-07-23 00:29:27 +03:00
|
|
|
//=include _resizeCanvas.js
|
2020-09-15 14:06:31 +03:00
|
|
|
//=include _resizeSprite.js
|
2021-01-04 01:59:11 +03:00
|
|
|
//=include _colorPicker.js
|
2021-01-07 02:04:48 +03:00
|
|
|
//=include _paletteBlock.js
|
2021-07-14 23:48:53 +03:00
|
|
|
//=include SplashPage.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
|
|
|
/**load file**/
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _loadPalette.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
|
|
|
/**buttons**/
|
2020-04-15 03:01:31 +03:00
|
|
|
//=include _toolButtons.js
|
2021-07-15 23:21:19 +03:00
|
|
|
//=include FileManager.js
|
|
|
|
//=include TopMenuModule.js
|
2020-03-04 16:36:40 +03:00
|
|
|
//=include _rectSelect.js
|
2020-03-04 21:38:35 +03:00
|
|
|
//=include _move.js
|
2020-03-07 01:21:42 +03:00
|
|
|
//=include _rectangle.js
|
2021-04-28 23:35:26 +03:00
|
|
|
//=include _ellipse.js
|
2021-07-22 19:57:44 +03:00
|
|
|
|
|
|
|
/**event listeners**/
|
|
|
|
//=include Input.js
|
|
|
|
//=include _mouseEvents.js
|
2019-03-27 02:20:54 +03:00
|
|
|
|
2021-04-29 02:03:50 +03:00
|
|
|
/**feature toggles**/
|
|
|
|
//=include _featureToggles.js
|
2021-06-29 02:54:54 +03:00
|
|
|
|
|
|
|
// Controls execution of this preset module
|
2021-07-15 23:26:08 +03:00
|
|
|
PresetModule.instrumentPresetMenu();
|
|
|
|
|
|
|
|
//when the page is done loading, you can get ready to start
|
|
|
|
window.onload = function () {
|
|
|
|
featureToggles.onLoad();
|
|
|
|
|
|
|
|
currentTool.updateCursor();
|
|
|
|
|
|
|
|
//check if there are any url parameters
|
|
|
|
if (window.location.pathname.replace('/pixel-editor/','').length <= 1) {
|
|
|
|
//show splash screen
|
|
|
|
Dialogue.showDialogue('splash', false);
|
|
|
|
}
|
|
|
|
//url parameters were specified
|
|
|
|
else {
|
|
|
|
let args = window.location.pathname.split('/');
|
|
|
|
let paletteSlug = args[2];
|
|
|
|
let dimentions = args[3];
|
|
|
|
|
|
|
|
//fetch palette via lospec palette API
|
|
|
|
fetch('https://lospec.com/palette-list/'+paletteSlug+'.json')
|
|
|
|
.then(response => response.json())
|
|
|
|
.then(data => {
|
|
|
|
//palette loaded successfully
|
|
|
|
palettes[paletteSlug] = data;
|
|
|
|
palettes[paletteSlug].specified = true;
|
|
|
|
|
|
|
|
//refresh list of palettes
|
|
|
|
document.getElementById('palette-menu-splash').refresh();
|
|
|
|
|
|
|
|
//if the dimentions were specified
|
|
|
|
if (dimentions && dimentions.length >= 3 && dimentions.includes('x')) {
|
|
|
|
let width = dimentions.split('x')[0];
|
|
|
|
let height = dimentions.split('x')[1];
|
|
|
|
|
|
|
|
//create new document
|
|
|
|
Startup.newPixel(width, height);
|
|
|
|
}
|
|
|
|
//dimentions were not specified -- show splash screen with palette preselected
|
|
|
|
else {
|
|
|
|
//show splash
|
|
|
|
Dialogue.showDialogue('new-pixel', false);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
//error fetching url (either palette doesn't exist, or lospec is down)
|
|
|
|
.catch((error) => {
|
|
|
|
console.warn('failed to load palette "'+paletteSlug+'"', error);
|
|
|
|
//proceed to splash screen
|
|
|
|
Dialogue.showDialogue('splash', false);
|
|
|
|
});
|
|
|
|
}
|
2021-07-19 00:17:41 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
//prevent user from leaving page with unsaved data
|
|
|
|
window.onbeforeunload = function() {
|
|
|
|
if (documentCreated)
|
|
|
|
return 'You will lose your pixel if it\'s not saved!';
|
|
|
|
|
|
|
|
else return;
|
2021-07-15 23:26:08 +03:00
|
|
|
};
|