From bb04ff1e4608bd392b1be956e30f6ff14d402253 Mon Sep 17 00:00:00 2001 From: DoomKitty87 Date: Mon, 21 Aug 2023 19:29:52 -0700 Subject: [PATCH] finished generation frontend trying to get tauri to read files --- web-app/seafoam/package-lock.json | 16 ++++++++++ web-app/seafoam/package.json | 1 + web-app/seafoam/src-tauri/Cargo.toml | 2 +- web-app/seafoam/src-tauri/tauri.conf.json | 3 ++ web-app/seafoam/src/index.html | 39 ++++++++++++++++++++--- web-app/seafoam/src/main.js | 18 ----------- web-app/seafoam/src/routegen.js | 25 +++++++++++---- web-app/seafoam/src/styles.css | 14 ++++++++ 8 files changed, 87 insertions(+), 31 deletions(-) delete mode 100644 web-app/seafoam/src/main.js diff --git a/web-app/seafoam/package-lock.json b/web-app/seafoam/package-lock.json index 060b6f1..dee2384 100644 --- a/web-app/seafoam/package-lock.json +++ b/web-app/seafoam/package-lock.json @@ -8,9 +8,25 @@ "name": "seafoam", "version": "0.0.0", "devDependencies": { + "@tauri-apps/api": "^1.4.0", "@tauri-apps/cli": "^1.4.0" } }, + "node_modules/@tauri-apps/api": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.4.0.tgz", + "integrity": "sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw==", + "dev": true, + "engines": { + "node": ">= 14.6.0", + "npm": ">= 6.6.0", + "yarn": ">= 1.19.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, "node_modules/@tauri-apps/cli": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.4.0.tgz", diff --git a/web-app/seafoam/package.json b/web-app/seafoam/package.json index 3ff94b1..5867341 100644 --- a/web-app/seafoam/package.json +++ b/web-app/seafoam/package.json @@ -7,6 +7,7 @@ "tauri": "tauri" }, "devDependencies": { + "@tauri-apps/api": "^1.4.0", "@tauri-apps/cli": "^1.4.0" } } diff --git a/web-app/seafoam/src-tauri/Cargo.toml b/web-app/seafoam/src-tauri/Cargo.toml index 801883c..7c1782b 100644 --- a/web-app/seafoam/src-tauri/Cargo.toml +++ b/web-app/seafoam/src-tauri/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" tauri-build = { version = "1.4", features = [] } [dependencies] -tauri = { version = "1.4", features = ["shell-open"] } +tauri = { version = "1.4", features = [ "fs-all", "shell-open"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/web-app/seafoam/src-tauri/tauri.conf.json b/web-app/seafoam/src-tauri/tauri.conf.json index 74b94ec..2ef58bc 100644 --- a/web-app/seafoam/src-tauri/tauri.conf.json +++ b/web-app/seafoam/src-tauri/tauri.conf.json @@ -16,6 +16,9 @@ "shell": { "all": false, "open": true + }, + "fs": { + "all":true } }, "bundle": { diff --git a/web-app/seafoam/src/index.html b/web-app/seafoam/src/index.html index 0246867..53baf30 100644 --- a/web-app/seafoam/src/index.html +++ b/web-app/seafoam/src/index.html @@ -5,13 +5,13 @@ Seafoam - +
@@ -119,7 +119,16 @@
-

NEXT →

+

GENERATE

+
+ + @@ -130,7 +139,7 @@ var waypointNumber = 150; - var priority = "TP"; + var priority = "tp"; var allowedOOB = 0; var angleEnable = false; @@ -147,6 +156,24 @@ activeSquare = parseInt(indx); document.getElementById(indx).style.backgroundColor = "#ffffff"; } + async function getRoute() { + var output = generateRoute(activeSquare, allowedOOB, priority, waypointNumber); + //document.getElementsByClassName("routeoutput")[0].innerHTML = output[0]; + } + async function resetMenu() { + document.getElementById("menua" + (currentStep)).style.opacity = 0; + document.getElementsByClassName("progressitem")[currentStep - 1].setAttribute("data-active", "false"); + document.getElementsByClassName("dot")[currentStep - 1].setAttribute("data-active", "false"); + await new Promise(r => setTimeout(r, 500)); + document.getElementById("menua" + (currentStep)).style.display = "none"; + currentStep = 1; + document.getElementById(activeSquare).style.backgroundColor = "#0e141b"; + activeSquare = -1; + document.getElementById("menua" + (currentStep)).style.display = "block"; + document.getElementById("menua" + (currentStep)).style.opacity = 1; + document.getElementsByClassName("progressitem")[currentStep - 1].setAttribute("data-active", "true"); + document.getElementsByClassName("dot")[currentStep - 1].setAttribute("data-active", "true"); + } async function updateMenu(step) { document.getElementById("menua" + (step - 1)).style.opacity = 0; document.getElementsByClassName("progressitem")[step - 2].setAttribute("data-active", "false"); @@ -157,12 +184,13 @@ document.getElementById("menua" + (step)).style.opacity = 1; document.getElementsByClassName("progressitem")[step - 1].setAttribute("data-active", "true"); document.getElementsByClassName("dot")[step - 1].setAttribute("data-active", "true"); + if (step == 4) getRoute(); } function moveStep() { if (currentStep == 1 && activeSquare == -1) return; if (currentStep == 2) waypointNumber = document.getElementById("wpform").value; if (currentStep == 3) { - if (document.getElementById("tp").checked) priority = "TP"; else priority = "DENS"; + if (document.getElementById("tp").checked) priority = "tp"; else priority = "dens"; allowedOOB = document.getElementsByClassName("oobform")[0].value; if (document.getElementById("anglecheck").checked) { angleEnable = true; @@ -170,6 +198,7 @@ angle33 = document.getElementsById("angle33").value; } else angleEnable = false; } + if (currentStep == 4) return; currentStep++; updateMenu(currentStep); } diff --git a/web-app/seafoam/src/main.js b/web-app/seafoam/src/main.js deleted file mode 100644 index 95a1702..0000000 --- a/web-app/seafoam/src/main.js +++ /dev/null @@ -1,18 +0,0 @@ -const { invoke } = window.__TAURI__.tauri; - -let greetInputEl; -let greetMsgEl; - -async function greet() { - // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command - greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value }); -} - -window.addEventListener("DOMContentLoaded", () => { - greetInputEl = document.querySelector("#greet-input"); - greetMsgEl = document.querySelector("#greet-msg"); - document.querySelector("#greet-form").addEventListener("submit", (e) => { - e.preventDefault(); - greet(); - }); -}); diff --git a/web-app/seafoam/src/routegen.js b/web-app/seafoam/src/routegen.js index 486cf44..57b2b3f 100644 --- a/web-app/seafoam/src/routegen.js +++ b/web-app/seafoam/src/routegen.js @@ -1,4 +1,5 @@ -const fs = require('fs'); +import { readTextFile } from '@tauri-apps/api/fs'; +document.getElementsByClassName("title")[0].innerHTML = "Generating route..."; const overallPads = []; // Loading etherwarp pad coordinates @@ -30,8 +31,6 @@ for (const line of densityLines) { console.log(`Loaded ${overallPads.length / 3} pads.`); -const desiredPathLength = 150; - const jadecoordsx = 823; const jadecoordsz = 202; @@ -49,7 +48,9 @@ for (let i = 0; i < 5; i++) { } } -async function generateRoute(sector, allowedOOB) { +function generateRoute(sector, allowedOOB, priority, waypointCount) { + document.getElementsByClassName("routeoutput")[0].innerHTML = "Generating route..."; + const desiredPathLength = waypointCount; const padCoords = []; const secDensities = []; for (var i = 0; i < overallPads.length / 3; i++) { @@ -68,6 +69,7 @@ async function generateRoute(sector, allowedOOB) { var highestDensityDist = Infinity; for (var i = 0; i < padCoords.length / 3; i++) { + document.getElementsByClassName("routeoutput")[0].innerHTML = "Generating route... " + floor(i / padCoords.length * 100) + "%"; const path = []; path.push_back(padCoords[i * 3]); path.push_back(padCoords[i * 3 + 1]); @@ -198,9 +200,18 @@ async function generateRoute(sector, allowedOOB) { } } //Choose between density and dist in settings as well though - const outPath = lowestAvgDistPath; - const outPathDensity = lowestAvgDistDensity; - const outPathDist = lowestAvgDist; + var outPath = []; + var outPathDensity = 0; + var outPathDist = 0; + if (priority == "tp") { + outPath = lowestAvgDistPath; + outPathDensity = lowestAvgDistDensity; + outPathDist = lowestAvgDist; + } else { + outPath = highestDensityPath; + outPathDensity = highestDensity; + outPathDist = highestDensityDist; + } var pathOutput = "["; for (var i = 0; i < outPath.length / 3; i++) { diff --git a/web-app/seafoam/src/styles.css b/web-app/seafoam/src/styles.css index a7819c2..bb1af9e 100644 --- a/web-app/seafoam/src/styles.css +++ b/web-app/seafoam/src/styles.css @@ -280,4 +280,18 @@ label.anglesettings { margin-left: 0.5rem; position: relative; bottom: 0.2rem; +} + +.routeresults { + position: relative; + left: 20rem; + margin-top: 2rem; + width: 40rem; +} + +.routeoutput { + color: #ffffff; + font-size: 1.2rem; + font-weight: 300; + user-select: text; } \ No newline at end of file