diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index a1ab6ce..1341e3a 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -27,6 +27,19 @@ let palette: Palette = defaultPalette() let primaryColorIndex: number = 1 let secondaryColorIndex: number = 0 + + // Oh no, what are you doing, step palette~ + function stepPalette(step: number, primary: boolean) { + if (primary) { + primaryColorIndex += step + if (primaryColorIndex < 0) primaryColorIndex = focusedFile?.canvas.palette.length-1 + if (primaryColorIndex >= focusedFile?.canvas.palette.length) primaryColorIndex = 0 + } else { + secondaryColorIndex += step + if (secondaryColorIndex < 0) secondaryColorIndex = focusedFile?.canvas.palette.length-1 + if (secondaryColorIndex >= focusedFile?.canvas.palette.length) secondaryColorIndex = 0 + } + } let showImport: boolean = false let importValid: boolean = false @@ -127,6 +140,10 @@ toolMove.shift({file: focusedFile}, {x: 0, y: 1, id: 0})} /> swapTool(toolBrush)} /> currentTool===toolBrush?swapTool(toolPicker):null} on:release={()=>previousTool===toolBrush&¤tTool===toolPicker?swapTool(toolBrush):null} /> + stepPalette(-1, true)}/> + stepPalette(1, true)}/> + stepPalette(-1, false)}/> + stepPalette(1, false)}/> swapTool(toolFill)} /> swapTool(toolPicker)} /> swapTool(toolErase)} /> diff --git a/frontend/src/components/Shortcuts.svelte b/frontend/src/components/Shortcuts.svelte index 6a76a99..d90ea23 100644 --- a/frontend/src/components/Shortcuts.svelte +++ b/frontend/src/components/Shortcuts.svelte @@ -71,6 +71,29 @@ keys.delete(key.toLowerCase()) keystring = keysToString([...keys]) }) + + window.addEventListener('wheel', (event: WheelEvent) => { + if (event.deltaY < 0 || event.deltaX < 0) { + keys.add('wheelup') + } else if (event.deltaY > 0 || event.deltaX > 0) { + keys.add('wheeldown') + } + + keystring = keysToString([...keys]) + + let cur = get(currentShortcuts) + for (let shortcut of get(shortcuts)) { + if (shortcut.group !== cur.group) continue + if (!shortcut.global && shortcut.id !== cur.id) continue + if (shortcut.keys.includes(keystring)) { + shortcut.trigger() + } + } + + keys.delete('wheelup') + keys.delete('wheeldown') + }) + window.addEventListener('blur', () => { keys.clear() keystring = '' diff --git a/frontend/src/sections/Editor2D.svelte b/frontend/src/sections/Editor2D.svelte index 252c94f..d345419 100644 --- a/frontend/src/sections/Editor2D.svelte +++ b/frontend/src/sections/Editor2D.svelte @@ -274,6 +274,7 @@ } return } + if (e.altKey) return if (e.deltaY < 0) { if (e.shiftKey) { offsetX-- diff --git a/frontend/src/sections/Palette.svelte b/frontend/src/sections/Palette.svelte index 6e54a6f..7cb800f 100644 --- a/frontend/src/sections/Palette.svelte +++ b/frontend/src/sections/Palette.svelte @@ -15,9 +15,21 @@ primaryColorIndex = index } } + function handleWheel(event: WheelEvent) { + if (event.deltaX < 0) { + secondaryColorIndex = (secondaryColorIndex - 1 + file.canvas.palette.length) % file.canvas.palette.length + } else if (event.deltaX > 0) { + secondaryColorIndex = (secondaryColorIndex + 1) % file.canvas.palette.length + } + if (event.deltaY < 0) { + primaryColorIndex = (primaryColorIndex - 1 + file.canvas.palette.length) % file.canvas.palette.length + } else if (event.deltaY > 0) { + primaryColorIndex = (primaryColorIndex + 1) % file.canvas.palette.length + } + } -
+
{#if file} {#each file.canvas.palette as palette, paletteIndex}