From 0f3696b4976275a597d0399dbceac21362e614a1 Mon Sep 17 00:00:00 2001 From: Daniel Ledda Date: Sun, 4 Jul 2021 14:00:28 +0200 Subject: [PATCH] First 'release'L --- .idea/workspace.xml | 61 ++++----------------- package.json | 1 + public/resources/soma_icon.png | Bin 0 -> 37605 bytes src/store.ts | 13 ++++- src/ui/App.svelte | 14 ++--- src/ui/IncDecNum.svelte | 48 +++++++++++++++++ src/ui/Interactor.svelte | 89 +++++++++++++++++++++++++------ src/ui/Sidebar.svelte | 79 +++++++++++++++------------ src/ui/SolutionViewer.svelte | 40 ++++++-------- src/ui/threedee/PolycubeScene.ts | 44 ++++++++++++--- 10 files changed, 245 insertions(+), 144 deletions(-) create mode 100644 public/resources/soma_icon.png create mode 100644 src/ui/IncDecNum.svelte diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 244265c..253ed73 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -26,41 +26,15 @@ - - - - - - + - - - - - - - - - - - - - - - - - - - - + + - - - @@ -171,7 +146,8 @@ - + + @@ -179,27 +155,10 @@ @@ -275,11 +234,11 @@ - - + + - + diff --git a/package.json b/package.json index d59a535..0eb70c8 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "./public/**", "./src/desktop${/*}" ], + "icon": "./public/resources/soma_icon.png", "directories": { "output": "desktop-dist" } diff --git a/public/resources/soma_icon.png b/public/resources/soma_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8779975ea3be2d3c37409a5b8fcb3ae337c353 GIT binary patch literal 37605 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 $polycubes.length <= 1 ); +export const cubeScene = new PolycubeScene(); + function dimStore(init: number) { const dimStore = writable(init); return { subscribe: dimStore.subscribe, + inc() { + dimStore.set(get(dimStore) + 1); + }, + dec() { + dimStore.set(get(dimStore) - 1); + }, set(dim: number) { if (dim > MAX_DIMS || dim < MIN_DIMS) { return; diff --git a/src/ui/App.svelte b/src/ui/App.svelte index 4887671..c0c1d69 100644 --- a/src/ui/App.svelte +++ b/src/ui/App.svelte @@ -38,20 +38,12 @@ color: white; background: #333333; } - @media(max-width: 1600px) { - .solutionBodyContainer { - width: 100%; - } - .sidebarContainer { - width: 20%; - } - } @media(max-width: 1200px) { .solutionBodyContainer { - width: 100%; + width: calc(100% - 18em); } - .sidebarContainer { - width: 15em; + .sidebarContainer { + width: 18em; } } diff --git a/src/ui/IncDecNum.svelte b/src/ui/IncDecNum.svelte new file mode 100644 index 0000000..159749f --- /dev/null +++ b/src/ui/IncDecNum.svelte @@ -0,0 +1,48 @@ + + +
+ {#if title} +

{title}

+ {/if} +
+ +

{val}

+ +
+
+ + \ No newline at end of file diff --git a/src/ui/Interactor.svelte b/src/ui/Interactor.svelte index 2f50bce..5ee7dab 100644 --- a/src/ui/Interactor.svelte +++ b/src/ui/Interactor.svelte @@ -3,26 +3,84 @@ import CubeInput from "./CubeInput.svelte"; import SolutionViewer from "./SolutionViewer.svelte"; $: numCubes = $polycubes.length; + let showInput = true; + let smallViewport = true; + + function onMediaChange() { + smallViewport = queryListWidth.matches || queryListHeight.matches; + } + + const queryListWidth = window.matchMedia("(max-width: 1200px)"); + const queryListHeight = window.matchMedia("(max-height: 920px)"); + queryListWidth.addEventListener("change", onMediaChange); + queryListHeight.addEventListener("change", onMediaChange); + onMediaChange();
-
- {#each {length: numCubes} as _, cubeNo} -
-
- -
+ {#if smallViewport} +
+
Input
+
3D
+
+ {#if showInput} +
+ {#each {length: numCubes} as _, cubeNo} +
+
+ +
+
+ {/each}
- {/each} -
-
- -
+ {:else} +
+ +
+ {/if} + {:else} +
+ {#each {length: numCubes} as _, cubeNo} +
+
+ +
+
+ {/each} +
+
+ +
+ {/if}
\ No newline at end of file diff --git a/src/ui/Sidebar.svelte b/src/ui/Sidebar.svelte index 45f9eb6..c68f6eb 100644 --- a/src/ui/Sidebar.svelte +++ b/src/ui/Sidebar.svelte @@ -4,10 +4,17 @@ isMinPolycubes, polycubes, solutions, - colorFromIndex, - activeSolution, showingSolution, totalVolume, somaDimX, somaDimY, somaDimZ, debug + solving, + totalVolume, + somaDimX, + somaDimY, + somaDimZ, + MAX_DIMS, + MIN_DIMS, + solve } from "../store"; import SolutionList from "./SolutionList.svelte"; + import IncDecNum from "./IncDecNum.svelte"; $: numCubes = $polycubes.length; $: cubes = $polycubes; @@ -40,21 +47,30 @@

Dimensions:

- X - somaDimX.set(e.target.valueAsNumber)}/> - Y - somaDimY.set(e.target.valueAsNumber)}/> - Z - somaDimZ.set(e.target.valueAsNumber)}/> + + + {#if $totalVolume > 32}

The total number of units exceeds 32. Attempting to solve puzzles with more than 32 units results in significantly slower computation time.

{/if} @@ -64,9 +80,13 @@

Cubes:

- -

{numCubes}

- +
@@ -75,8 +95,8 @@ class="solve" on:click={solve} title="{genTooltip(enoughSubcubes, noEmpties, size)}" - disabled="{solving || !readyToSolve}"> - {solving ? "Solving..." : "Solve!"} + disabled="{$solving || !readyToSolve}"> + {$solving ? "Solving..." : "Solve!"}
@@ -95,7 +115,7 @@ .choice { display: block; text-align: center; - margin-top: 1em; + margin-top: 0.5em; } input { display: inline-block; @@ -108,14 +128,6 @@ color: white; background-color: #ff3e00; } - button:hover:not(:disabled) { - cursor: pointer; - background-color: #c1c1c1; - } - button:disabled { - color: #a7a7a7; - background-color: #616161; - } button.solve { width: auto; color: white; @@ -124,6 +136,7 @@ border-radius: 0.5em; border-style: none; margin: 0; + cursor: pointer; } button.solve:disabled { width: auto; @@ -151,8 +164,8 @@ padding-bottom: 0; } .widgets > * { - padding-top: 1em; - padding-bottom: 1em; + padding-top: 0.5em; + padding-bottom: 0.5em; } h1 { margin: 0; diff --git a/src/ui/SolutionViewer.svelte b/src/ui/SolutionViewer.svelte index 1560ed5..6a1c1db 100644 --- a/src/ui/SolutionViewer.svelte +++ b/src/ui/SolutionViewer.svelte @@ -1,38 +1,35 @@