mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
f499662afc
- added `/:paletteSlug/:resolution` functionality for localhost testing - created `currFile.sublayers` for *things that should zoom with the canvas layers* - `currFile.layers` now solely contains the canvas layers - added `getProjectData` to `FileManager`'s exported methods --- - added `FileManager.localStorageSave` (it's basically just: localStorage.setItem("lpe-cache",FileManager.getProjectData())) - added `FileManager.localStorageCheck` (it's basically just: `!!localStorage.getItem("lpe-cache")`) - added `FileManager.localStorageLoad` (it's basically just: `return localStorage.getItem("lpe-cache")`) - added `FileManager.localStorageReset` (for debugging purity) --- - calling `FileManager.localStorageSave()` on mouse up (we should stress test this) --- - changed lpe file format to `{canvasWidth:number,canvasHeight:number,selectedLayer:number,colors:[],layers:[]}` - added backward compatibility for the old lpe file format --- - added some canvas utility functions in `canvas_util` - added Unsettled's color similarity utility functions in `color_util2` --- - html boilerplate - wang tiles - - POC - tiny text boilerplate - POC - tiny text font scraper --- - WIP - added two optional url route parameters `/:paletteSlug/:resolution/:prefillWidth/:prefillBinaryStr` - WIP POC - hbs_parser.js (outputs tree data about hbs file relationships)
81 lines
2.4 KiB
JavaScript
81 lines
2.4 KiB
JavaScript
const EditorState = (() => {
|
|
let pixelEditorMode = "Basic";
|
|
let firstFile = true;
|
|
|
|
Events.on('click', 'switch-editor-mode-splash', chooseMode);
|
|
Events.on('click', 'switch-mode-button', toggleMode);
|
|
|
|
function getCurrentMode() {
|
|
return pixelEditorMode;
|
|
}
|
|
|
|
function switchMode(newMode, skipConfirm = false) {
|
|
////console.trace();
|
|
const switchText = 'Switching to basic mode will flatten all the visible layers. Are you sure you want to continue?';
|
|
if (!firstFile && newMode == "Basic" && !skipConfirm && !confirm(switchText)) {
|
|
return;
|
|
}
|
|
//switch to advanced mode
|
|
if (newMode == 'Advanced') {
|
|
Events.emit("switchedToAdvanced");
|
|
// Hide the palette menu
|
|
document.getElementById('colors-menu').style.right = '200px'
|
|
|
|
pixelEditorMode = 'Advanced';
|
|
document.getElementById("switch-mode-button").innerHTML = 'Switch to basic mode';
|
|
}
|
|
//switch to basic mode
|
|
else {
|
|
Events.emit("switchedToBasic");
|
|
// Show the palette menu
|
|
document.getElementById('colors-menu').style.display = 'flex';
|
|
// Move the palette menu
|
|
document.getElementById('colors-menu').style.right = '0px';
|
|
|
|
pixelEditorMode = 'Basic';
|
|
document.getElementById("switch-mode-button").innerHTML = 'Switch to advanced mode';
|
|
}
|
|
}
|
|
|
|
function chooseMode() {
|
|
let prevMode = pixelEditorMode.toLowerCase();
|
|
|
|
if (pixelEditorMode === "Basic") {
|
|
pixelEditorMode = "Advanced";
|
|
}
|
|
else {
|
|
pixelEditorMode = "Basic";
|
|
}
|
|
|
|
//change splash text
|
|
document.querySelector('#sp-quickstart-container .mode-switcher').classList.remove(prevMode + '-mode');
|
|
document.querySelector('#sp-quickstart-container .mode-switcher').classList.add(pixelEditorMode.toLowerCase() + '-mode');
|
|
}
|
|
|
|
function toggleMode() {
|
|
if (pixelEditorMode == 'Advanced')
|
|
switchMode('Basic');
|
|
else
|
|
switchMode('Advanced');
|
|
}
|
|
|
|
function documentCreated() {
|
|
return !firstFile;
|
|
}
|
|
|
|
function firstPixel() {
|
|
return firstFile;
|
|
}
|
|
|
|
function created() {
|
|
firstFile = false;
|
|
}
|
|
|
|
return {
|
|
getCurrentMode,
|
|
switchMode,
|
|
documentCreated,
|
|
created,
|
|
firstPixel
|
|
}
|
|
})(); |