mirror of
https://github.com/Gabi-Zar/Silk-Fly-Launcher.git
synced 2026-04-17 05:26:04 +02:00
add auto path detection
This commit is contained in:
14
main.js
14
main.js
@@ -1,6 +1,7 @@
|
||||
const { app, BrowserWindow , ipcMain} = require('electron/main');
|
||||
const path = require('node:path');
|
||||
const Store = require('electron-store').default;
|
||||
const fs = require('fs/promises');
|
||||
|
||||
const store = new Store();
|
||||
|
||||
@@ -39,3 +40,16 @@ ipcMain.handle('save-path', (event, path) => {
|
||||
ipcMain.handle('load-path', () => {
|
||||
return store.get('silksong-path');
|
||||
});
|
||||
|
||||
async function fileExists(filePath) {
|
||||
try {
|
||||
await fs.access(filePath);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ipcMain.handle('file-exists', async (_, filePath) => {
|
||||
return await fileExists(filePath);
|
||||
});
|
||||
@@ -12,3 +12,7 @@ contextBridge.exposeInMainWorld('save', {
|
||||
loadSilksongPath: () =>
|
||||
ipcRenderer.invoke('load-path')
|
||||
})
|
||||
|
||||
contextBridge.exposeInMainWorld('files', {
|
||||
fileExists: (path) => ipcRenderer.invoke('file-exists', path)
|
||||
});
|
||||
@@ -83,7 +83,7 @@
|
||||
<template id="settings-template">
|
||||
<h2>General settings</h2>
|
||||
<label for="silksong-path-label">Enter Silksong path: </label>
|
||||
<input type="text" id="silksong-path-input" name="silksong-path-input">
|
||||
<input type="text" id="silksong-path-input" name="silksong-path-input"> <button class="default-button">Auto Dectect</button>
|
||||
</template>
|
||||
|
||||
<script src="renderer.js"></script>
|
||||
|
||||
@@ -9,6 +9,7 @@ const settingsTemplate = document.getElementById("settings-template");
|
||||
const versionText = HomeTemplate.content.getElementById("version-text")
|
||||
|
||||
navigate("home")
|
||||
autoDetectGamePath()
|
||||
|
||||
async function navigate(page) {
|
||||
view.replaceChildren()
|
||||
@@ -37,13 +38,11 @@ async function navigate(page) {
|
||||
const settingsTemplateCopy = settingsTemplate.content.cloneNode(true)
|
||||
const silksongPathInput = settingsTemplateCopy.getElementById("silksong-path-input")
|
||||
|
||||
silksongPathInput.value = await window.save.loadSilksongPath()
|
||||
silksongPathInput.value = await save.loadSilksongPath()
|
||||
|
||||
silksongPathInput.addEventListener('input', async function(event) {
|
||||
let silksongPath = silksongPathInput.value
|
||||
console.log(silksongPath)
|
||||
await window.save.saveSilksongPath(silksongPath)
|
||||
console.log(await window.save.loadSilksongPath())
|
||||
await save.saveSilksongPath(silksongPath)
|
||||
});
|
||||
|
||||
view.appendChild(settingsTemplateCopy)
|
||||
@@ -53,3 +52,10 @@ async function navigate(page) {
|
||||
function launch(mode) {
|
||||
alert(`Launching the game in ${mode} mode.`);
|
||||
}
|
||||
|
||||
async function autoDetectGamePath() {
|
||||
const defaultSilksongPath = "C:/Program Files (x86)/Steam/steamapps/common/Hollow Knight Silksong/Hollow Knight Silksong.exe"
|
||||
if (files.fileExists(defaultSilksongPath)) {
|
||||
await save.saveSilksongPath(defaultSilksongPath)
|
||||
}
|
||||
}
|
||||
@@ -134,3 +134,11 @@ body {
|
||||
input[type="range"] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.default-button {
|
||||
|
||||
}
|
||||
|
||||
.default-button:hover {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user