Compare commits

..

4 Commits

Author SHA1 Message Date
72354c053f Update package.json 2025-05-11 21:03:40 +02:00
5f8ba166cb Create build.yml 2025-05-11 20:43:47 +02:00
eb8f11ac89 sync 2025-05-11 20:33:07 +02:00
86bb37944c sync 2025-05-11 17:31:53 +02:00
8 changed files with 101 additions and 14 deletions

32
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Release app
on:
workflow_dispatch: null
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
- macos-latest
- macos-latest
- ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@4.2.2
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@4.4.0
with:
node-version: 20
- name: Config git user
run: |
git config --global user.email "gilleslazure04@gmail.com"
git config --global user.name "Gilles Lazure <azures04>"
- name: Install app dependencies
run: |
npm i
- name: Build app
run: |
node build
env:
GITHUB_TOKEN: ${{ github.token }}

View File

@ -31,6 +31,7 @@ main {
bottom: 0px; bottom: 0px;
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden;
app-region: drag; app-region: drag;
} }
@ -42,6 +43,7 @@ main > nav {
margin-left: 1rem; margin-left: 1rem;
width: 20%; width: 20%;
height: 100%; height: 100%;
overflow-y: auto;
background-color: #3e3e3ee6; background-color: #3e3e3ee6;
} }
@ -416,6 +418,26 @@ div.loader > div.full > div.loading {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
/* Chrome-specific scrollbar styling */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.1); /* Slightly visible track for better contrast */
}
::-webkit-scrollbar-thumb {
background: #2E8B57;
border-radius: 4px; /* Rounded edges for a modern look */
}
::-webkit-scrollbar-thumb:hover {
background: #39aa6d;
}
@keyframes animateLoadingEffect { @keyframes animateLoadingEffect {
0% { 0% {
transform: translateX(-100%); transform: translateX(-100%);

View File

@ -1,4 +1,4 @@
const fs = require("node:fs") require("v8-compile-cache")
const path = require("node:path") const path = require("node:path")
const builder = require("electron-builder") const builder = require("electron-builder")

29
main.js
View File

@ -202,6 +202,16 @@ async function checkCoutdown(uuid) {
} }
} }
function writeOculusConfigFile(filePath) {
const oculusProperties = properties.parse(fs.readFileSync(filePath).toString())
if (data.args.boolean) {
properties.setProperty(oculusProperties, "shaderPack", "Sildurs_Vibrant_Shaders_v1.50_Medium.zip")
} else {
properties.setProperty(oculusProperties, "shaderPack", "")
}
fs.writeFileSync(filePath, properties.stringify(oculusProperties))
}
app.whenReady().then(() => { app.whenReady().then(() => {
createDefaultWindow() createDefaultWindow()
app.on("activate", async () => { app.on("activate", async () => {
@ -353,17 +363,22 @@ ipcMain.on("call", async (event, data) => {
launcherWindow.webContents.openDevTools() launcherWindow.webContents.openDevTools()
break break
case "oculus::defaultshaderset": case "oculus::defaultshaderset":
const oculusProperties = properties.parse(fs.readFileSync(path.join(app.getPath("appData"), ".catboat", "config", "oculus.properties")).toString()) const filePath = path.join(app.getPath("appData"), ".catboat", "config", "oculus.properties")
if (data.args.boolean) { if (fs.existsSync(filePath)) {
properties.setProperty(oculusProperties, "shaderPack", "Sildurs_Vibrant_Shaders_v1.50_Medium.zip") writeOculusConfigFile(filePath)
} else { } else {
properties.setProperty(oculusProperties, "shaderPack", "") fs.copyFileSync(path.join(__dirname, "oculus.properties"), filePath)
writeOculusConfigFile(filePath)
} }
fs.writeFileSync(path.join(app.getPath("appData"), ".catboat", "config", "oculus.properties"), properties.stringify(oculusProperties))
break break
case "oculus::getdefaultshaderset": case "oculus::getdefaultshaderset":
const $oculusProperties = properties.parse(fs.readFileSync(path.join(app.getPath("appData"), ".catboat", "config", "oculus.properties")).toString()) const $filePath = path.join(app.getPath("appData"), ".catboat", "config", "oculus.properties")
launcherWindow.webContents.send("Response<oculus::getdefaultshaderset>", properties.getProperty($oculusProperties, "shaderPack") == "Sildurs_Vibrant_Shaders_v1.50_Medium.zip" ? true : false) if (fs.existsSync($filePath)) {
const $oculusProperties = properties.parse(fs.readFileSync($filePath).toString())
launcherWindow.webContents.send("Response<oculus::getdefaultshaderset>", properties.getProperty($oculusProperties, "shaderPack") == "Sildurs_Vibrant_Shaders_v1.50_Medium.zip" ? true : false) } else {
const $oculusProperties = properties.parse(fs.readFileSync($filePath).toString())
launcherWindow.webContents.send("Response<oculus::getdefaultshaderset>", properties.getProperty($oculusProperties, "shaderPack") == "Sildurs_Vibrant_Shaders_v1.50_Medium.zip" ? true : false)
}
break break
} }
}) })

View File

@ -90,5 +90,6 @@ async function getPath(customExtractPath) {
} }
module.exports = { module.exports = {
main main,
getPath
} }

8
oculus.properties Normal file
View File

@ -0,0 +1,8 @@
#This file stores configuration options for Oculus, such as the currently active shaderpack
#Sun May 11 07:39:36 CEST 2025
colorSpace=SRGB
disableUpdateMessage=false
enableDebugOptions=false
maxShadowRenderDistance=32
shaderPack=Sildurs_Vibrant_Shaders_v1.50_Medium.zip
enableShaders=true

13
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "catboat-launcher", "name": "catboat-launcher",
"version": "0.0.1-alpha", "version": "0.0.9-alpha",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "catboat-launcher", "name": "catboat-launcher",
"version": "0.0.1-alpha", "version": "0.0.9-alpha",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"discord-rpc": "^4.0.1", "discord-rpc": "^4.0.1",
@ -14,7 +14,8 @@
"js-java-properties": "^1.0.3", "js-java-properties": "^1.0.3",
"minecraft-launcher-core": "^3.18.2", "minecraft-launcher-core": "^3.18.2",
"msmc": "^5.0.5", "msmc": "^5.0.5",
"socket.io-client": "^4.8.1" "socket.io-client": "^4.8.1",
"v8-compile-cache": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {
"electron": "^35.2.1", "electron": "^35.2.1",
@ -6596,6 +6597,12 @@
"uuid": "dist/bin/uuid" "uuid": "dist/bin/uuid"
} }
}, },
"node_modules/v8-compile-cache": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
"integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
"license": "MIT"
},
"node_modules/verror": { "node_modules/verror": {
"version": "1.10.1", "version": "1.10.1",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",

View File

@ -1,6 +1,6 @@
{ {
"name": "catboat-launcher", "name": "catboat-launcher",
"version": "0.0.1-alpha", "version": "0.1.0-alpha",
"description": "a simple minecraft launcher for catboat", "description": "a simple minecraft launcher for catboat",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
@ -22,12 +22,14 @@
"electron-builder": "^26.0.12", "electron-builder": "^26.0.12",
"electronmon": "^2.0.3" "electronmon": "^2.0.3"
}, },
"homepage": "https://nyancraft.catboat.fr",
"dependencies": { "dependencies": {
"discord-rpc": "^4.0.1", "discord-rpc": "^4.0.1",
"download": "^8.0.0", "download": "^8.0.0",
"js-java-properties": "^1.0.3", "js-java-properties": "^1.0.3",
"minecraft-launcher-core": "^3.18.2", "minecraft-launcher-core": "^3.18.2",
"msmc": "^5.0.5", "msmc": "^5.0.5",
"socket.io-client": "^4.8.1" "socket.io-client": "^4.8.1",
"v8-compile-cache": "^2.4.0"
} }
} }