Compare commits
267 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d35927cf5b | ||
|
|
580a6bc7eb | ||
|
|
ff1958614c | ||
|
|
b70fa735a2 | ||
|
|
42b3cf62e5 | ||
|
|
0e1c9250bf | ||
|
|
116fda9c27 | ||
|
|
b4daee985a | ||
|
|
e8dd728c48 | ||
|
|
d6f622c913 | ||
|
|
816997803a | ||
|
|
51a95949ad | ||
|
|
d536a6590b | ||
|
|
cb684177fe | ||
|
|
19380b0585 | ||
|
|
962979c70e | ||
|
|
8da6a217bc | ||
|
|
4a561a0c78 | ||
|
|
b164a52bf8 | ||
|
|
1c65b48958 | ||
|
|
9cf05611a3 | ||
|
|
0d316a6518 | ||
|
|
5f04f26eb8 | ||
|
|
0a32333019 | ||
|
|
0594d330be | ||
|
|
e8038f3c3e | ||
|
|
124bbad12c | ||
|
|
034fbf5737 | ||
|
|
f46453f1cd | ||
|
|
b8c448dab8 | ||
|
|
dd3048b88c | ||
|
|
7124b4a316 | ||
|
|
ecf3ca084f | ||
|
|
f7177b43bd | ||
|
|
5238a9de4e | ||
|
|
d9441c9a52 | ||
|
|
121a0bf4cf | ||
|
|
2e8e6cdec3 | ||
|
|
d7eca9ea60 | ||
|
|
58581203e0 | ||
|
|
3842bee2ab | ||
|
|
9b4d7c7167 | ||
|
|
074c1e50b9 | ||
|
|
b5667532ca | ||
|
|
a94e4ec758 | ||
|
|
92bd9c6f2a | ||
|
|
e2459777b2 | ||
|
|
e2a58ab948 | ||
|
|
62b81e5145 | ||
|
|
98f92c3173 | ||
|
|
85855ac4af | ||
|
|
2e57576200 | ||
|
|
0459370846 | ||
|
|
ef2dbc085f | ||
|
|
4e5a0ebb12 | ||
|
|
a1558b6693 | ||
|
|
5d7d2148cc | ||
|
|
e65ea4e06a | ||
|
|
d90c95da7f | ||
|
|
587d1983b8 | ||
|
|
b3162d4e02 | ||
|
|
4dc55c918a | ||
|
|
b7c8ef7e86 | ||
|
|
9f617d4b40 | ||
|
|
7d272115a7 | ||
|
|
1c2c73b95c | ||
|
|
6ae2932f6f | ||
|
|
a89bab677a | ||
|
|
84e13e31a8 | ||
|
|
aaeb2bea47 | ||
|
|
1b4d6f590b | ||
|
|
04bd863d8e | ||
|
|
6e2f5d1bf2 | ||
|
|
a401cffb6b | ||
|
|
3483ad6b2f | ||
|
|
8b707dfc1b | ||
|
|
38fca607fd | ||
|
|
6312fb4540 | ||
|
|
6418528da9 | ||
|
|
6f64b43358 | ||
|
|
49e7f823ce | ||
|
|
dbe68e4c6c | ||
|
|
25bc6754d7 | ||
|
|
1b0150b719 | ||
|
|
ffd4e22d4a | ||
|
|
55844ea118 | ||
|
|
583dc5a427 | ||
|
|
879d4a0a2d | ||
|
|
d436483cb2 | ||
|
|
0f3ddae8c7 | ||
|
|
8e27a4bed1 | ||
|
|
e105686b23 | ||
|
|
bc7c029675 | ||
|
|
cfcdb74606 | ||
|
|
eecd6dc506 | ||
|
|
31dc2b2548 | ||
|
|
1740975b3c | ||
|
|
a05dd01c69 | ||
|
|
8bf6116b05 | ||
|
|
495e82e8d6 | ||
|
|
4c146626be | ||
|
|
5ac10e216a | ||
|
|
c0df824b64 | ||
|
|
b6db45b159 | ||
|
|
fa7e97bc1f | ||
|
|
8bf7502c44 | ||
|
|
4675b2e5b5 | ||
|
|
aa84a6a148 | ||
|
|
14d222e656 | ||
|
|
b49cc294bc | ||
|
|
9d76b02bd1 | ||
|
|
a60567613b | ||
|
|
c01b745063 | ||
|
|
98e28154a2 | ||
|
|
88956902a8 | ||
|
|
c6b26454e7 | ||
|
|
bd632e7e0b | ||
|
|
b76e0c305d | ||
|
|
d10c4f6876 | ||
|
|
7baa96c798 | ||
|
|
5a01c5fcd3 | ||
|
|
04073b5ef9 | ||
|
|
c7877db61c | ||
|
|
377f093e47 | ||
|
|
49220c99e9 | ||
|
|
41cbd20fbb | ||
|
|
798b037920 | ||
|
|
4356db0996 | ||
|
|
d70ab4a128 | ||
|
|
91b633d575 | ||
|
|
3bb6a9d5fd | ||
|
|
0c1b2beced | ||
|
|
3525bd6523 | ||
|
|
c3c3abb2e3 | ||
|
|
e1a49069f0 | ||
|
|
114e775b2a | ||
|
|
3a7335f43d | ||
|
|
f85829c88c | ||
|
|
a647f0c7dc | ||
|
|
736376dc04 | ||
|
|
043d8445f2 | ||
|
|
2168031ac3 | ||
|
|
9997bbb292 | ||
|
|
1c88642e5c | ||
|
|
0e0b8ff77d | ||
|
|
e6d88173d6 | ||
|
|
773da39fe1 | ||
|
|
8bb20a072d | ||
|
|
7107161dc1 | ||
|
|
d85c9b2a2c | ||
|
|
9abc4756b7 | ||
|
|
1db0ac797e | ||
|
|
f43698aea4 | ||
|
|
66628c4bd2 | ||
|
|
c2fb9ece72 | ||
|
|
45b69acb9b | ||
|
|
558878f9df | ||
|
|
be910f2334 | ||
|
|
46e04a7c4b | ||
|
|
e29fd4da6f | ||
|
|
f2398aad23 | ||
|
|
bd2bf0ecab | ||
|
|
7d530fe258 | ||
|
|
5f8f084064 | ||
|
|
a24330ae2b | ||
|
|
b04d1f06eb | ||
|
|
1411f78388 | ||
|
|
c5a05ca3e2 | ||
|
|
f9487ce632 | ||
|
|
e17fbd2354 | ||
|
|
c087dbcd69 | ||
|
|
5fb311859a | ||
|
|
b01b1273b1 | ||
|
|
1b02b443d7 | ||
|
|
d874b194a2 | ||
|
|
f648cbbcc4 | ||
|
|
212413ff1a | ||
|
|
7414efce47 | ||
|
|
eddba38829 | ||
|
|
365a8143ff | ||
|
|
1ecc47c32f | ||
|
|
b589e43d3e | ||
|
|
74d2b71084 | ||
|
|
972a5958c6 | ||
|
|
f52f8b4700 | ||
|
|
5d38578349 | ||
|
|
60c8e016da | ||
|
|
87e841f565 | ||
|
|
9d80eea7d7 | ||
|
|
e19d311546 | ||
|
|
a6641065ab | ||
|
|
ac9fdec501 | ||
|
|
c25bb7cbaf | ||
|
|
29f4fdff47 | ||
|
|
8080a35b16 | ||
|
|
559ee0452c | ||
|
|
e1df420379 | ||
|
|
79c819a2eb | ||
|
|
79bd169439 | ||
|
|
0bc81e5854 | ||
|
|
eb63406540 | ||
|
|
1b36112fde | ||
|
|
f960c75f9a | ||
|
|
e7442ab8ad | ||
|
|
f8f9e27d67 | ||
|
|
657c97a71b | ||
|
|
341acc9071 | ||
|
|
754efe1195 | ||
|
|
d9787595db | ||
|
|
4ccae74746 | ||
|
|
4f307dee39 | ||
|
|
3cb787fc72 | ||
|
|
fcb389b86d | ||
|
|
106cc736bb | ||
|
|
31d229a48f | ||
|
|
fea0d56f9d | ||
|
|
b18dc6f898 | ||
|
|
c4436b27cd | ||
|
|
020ed90786 | ||
|
|
3f269ea08e | ||
|
|
f6cac74de4 | ||
|
|
1febea2f68 | ||
|
|
2fe2749d62 | ||
|
|
a691a55885 | ||
|
|
32fa9b48a6 | ||
|
|
3cd8340704 | ||
|
|
2706ad9cbc | ||
|
|
fb52972089 | ||
|
|
86dc293b26 | ||
|
|
394c667407 | ||
|
|
eedd9700f4 | ||
|
|
02fa714f3c | ||
|
|
8d48b2f938 | ||
|
|
37a3666022 | ||
|
|
8dfab72ae2 | ||
|
|
09bb57e9a6 | ||
|
|
b13260ed05 | ||
|
|
7ab84170c4 | ||
|
|
afebdffced | ||
|
|
1a0f51d698 | ||
|
|
51f2a78469 | ||
|
|
912d0da76e | ||
|
|
4a0a329f6b | ||
|
|
3f4a776600 | ||
|
|
3088ea0fd3 | ||
|
|
718aa8f125 | ||
|
|
f046e06e12 | ||
|
|
24a4599ecf | ||
|
|
8165e6c22c | ||
|
|
2d425c7bd0 | ||
|
|
30e4de0577 | ||
|
|
d51ca80202 | ||
|
|
c49f62e539 | ||
|
|
55acb96468 | ||
|
|
aa28d50a2b | ||
|
|
7b25f2afbc | ||
|
|
7941e8e1da | ||
|
|
e2a3e4b52c | ||
|
|
a78064377d | ||
|
|
a7577bbd72 | ||
|
|
4a0f2df6eb | ||
|
|
12fdcf0335 | ||
|
|
84c9296b51 | ||
|
|
6b434699e9 | ||
|
|
fc0dbae680 | ||
|
|
331d3e1ae9 | ||
|
|
c534c98ad5 |
246
.github/workflows/experimental.yml
vendored
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
name: "experimental"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-tauri:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- platform: "macos-latest"
|
||||
args: "--target aarch64-apple-darwin"
|
||||
artifact-name: macos-aarch64
|
||||
- platform: "macos-latest"
|
||||
args: "--target x86_64-apple-darwin"
|
||||
artifact-name: macos-x86_64
|
||||
- platform: "ubuntu-22.04"
|
||||
args: ""
|
||||
artifact-name: linux
|
||||
- platform: "windows-latest"
|
||||
args: ""
|
||||
artifact-name: windows
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: install dependencies (ubuntu only)
|
||||
if: matrix.platform == 'ubuntu-22.04'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libudev-dev
|
||||
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: "pnpm"
|
||||
|
||||
- name: install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: "./src-tauri -> target"
|
||||
|
||||
- name: install frontend dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: build Tauri app
|
||||
run: pnpm run tauri:build -- ${{ matrix.args }}
|
||||
env:
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
||||
|
||||
- name: Create PKG with post-install script (macOS only)
|
||||
if: matrix.platform == 'macos-latest'
|
||||
run: |
|
||||
mkdir -p pkg_temp/scripts
|
||||
cp scripts/postinstall.sh pkg_temp/scripts/
|
||||
MACOS_BUNDLE_DIR=$(find src-tauri/target -path "*/release/bundle/macos" -type d | head -n 1)
|
||||
APP_PATH=$(find "$MACOS_BUNDLE_DIR" -name "*.app" -type d | head -n 1)
|
||||
if [ -z "$APP_PATH" ]; then
|
||||
echo "No .app found in $MACOS_BUNDLE_DIR"
|
||||
exit 1
|
||||
fi
|
||||
APP_NAME=$(basename "$APP_PATH")
|
||||
pkgbuild --root "$APP_PATH/.." \
|
||||
--install-location /Applications \
|
||||
--scripts pkg_temp/scripts \
|
||||
--identifier "com.emerald.legacy" \
|
||||
--version "1.0.0" \
|
||||
"Emerald-Legacy-Launcher.pkg"
|
||||
mv "Emerald-Legacy-Launcher.pkg" "$MACOS_BUNDLE_DIR/"
|
||||
|
||||
- name: upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.artifact-name }}
|
||||
path: |
|
||||
src-tauri/target/**/release/bundle/**/*
|
||||
|
||||
build-flatpak:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08
|
||||
options: --privileged
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- name: sleep for 10 seconds
|
||||
run: sleep 10
|
||||
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||
with:
|
||||
bundle: Emerald.Legacy.Launcher.flatpak
|
||||
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
|
||||
cache-key: flatpak-builder-${{ github.sha }}
|
||||
- name: upload flatpak artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: flatpak
|
||||
path: Emerald.Legacy.Launcher.flatpak
|
||||
|
||||
build-appimage:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux:latest
|
||||
steps:
|
||||
- name: Bootstrap keyring and git
|
||||
run: |
|
||||
pacman -Syu --noconfirm archlinux-keyring
|
||||
pacman -S --noconfirm --needed git
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
src-tauri/target
|
||||
node_modules
|
||||
/var/cache/pacman/pkg
|
||||
key: arch-${{ hashFiles('src-tauri/Cargo.lock', 'pnpm-lock.yaml') }}
|
||||
restore-keys: arch-
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
pacman -S --noconfirm --needed \
|
||||
base-devel wget zsync nodejs patchelf \
|
||||
cargo cargo-tauri \
|
||||
gtk3 libayatana-appindicator webkit2gtk-4.1 glib-networking librsvg \
|
||||
xorg-server-xvfb
|
||||
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
|
||||
- name: Build deb with tauri
|
||||
run: |
|
||||
pnpm install
|
||||
cargo-tauri build --bundles deb --config '{"bundle":{"createUpdaterArtifacts":false},"build":{"beforeBuildCommand":"pnpm build"}}'
|
||||
|
||||
- name: Extract deb into /usr
|
||||
run: |
|
||||
cd src-tauri/target/release/bundle/deb
|
||||
ar x ./*.deb
|
||||
tar -xf data.tar.*
|
||||
cp -a usr/. /usr/
|
||||
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
cd pkg/AppImage
|
||||
chmod +x ./AppImage.sh
|
||||
./AppImage.sh
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: appimage
|
||||
path: pkg/AppImage/dist/*.AppImage
|
||||
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: "pnpm"
|
||||
|
||||
- name: setup Java 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: "17"
|
||||
|
||||
- name: setup Android SDK
|
||||
uses: android-actions/setup-android@v4
|
||||
- name: install Android SDK components
|
||||
run: |
|
||||
sdkmanager --install "platforms;android-36" "build-tools;36.0.0" "ndk;28.2.13676358"
|
||||
yes | sdkmanager --licenses
|
||||
sudo apt-get install -y glslang-tools
|
||||
|
||||
- name: install Rust stable with android target
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: aarch64-linux-android
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: "./src-tauri -> target"
|
||||
|
||||
- name: install frontend dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: download android bundled assets
|
||||
run: pnpm android:assets
|
||||
|
||||
- name: restore gradle wrapper jar
|
||||
run: |
|
||||
VER=$(sed -n 's/.*gradle-\([0-9][0-9.]*\)-bin\.zip.*/\1/p' src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties)
|
||||
curl -fL -o src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar \
|
||||
"https://raw.githubusercontent.com/gradle/gradle/v${VER}/gradle/wrapper/gradle-wrapper.jar"
|
||||
|
||||
- name: set up android signing keystore
|
||||
env:
|
||||
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
run: |
|
||||
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > src-tauri/gen/android/app/release.keystore
|
||||
cat > src-tauri/gen/android/app/key.properties <<EOF
|
||||
keyAlias=$ANDROID_KEY_ALIAS
|
||||
keyPassword=$ANDROID_KEYSTORE_PASSWORD
|
||||
storeFile=release.keystore
|
||||
storePassword=$ANDROID_KEYSTORE_PASSWORD
|
||||
EOF
|
||||
|
||||
- name: build Android APK
|
||||
env:
|
||||
ANDROID_NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
|
||||
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
|
||||
run: npx tauri android build --target aarch64
|
||||
- name: upload APK
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: src-tauri/gen/android/app/build/outputs/apk/universal/release/*.apk
|
||||
112
.github/workflows/nightly.yml
vendored
|
|
@ -1,112 +0,0 @@
|
|||
name: 'nightly'
|
||||
on:
|
||||
push:
|
||||
branches: ["main"]
|
||||
|
||||
jobs:
|
||||
nightly-tauri:
|
||||
permissions:
|
||||
contents: write
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- platform: 'macos-latest'
|
||||
args: '--target aarch64-apple-darwin'
|
||||
- platform: 'macos-latest'
|
||||
args: '--target x86_64-apple-darwin'
|
||||
- platform: 'ubuntu-22.04'
|
||||
args: ''
|
||||
- platform: 'windows-latest'
|
||||
args: ''
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: install dependencies (ubuntu only)
|
||||
if: matrix.platform == 'ubuntu-22.04'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libudev-dev
|
||||
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: './src-tauri -> target'
|
||||
|
||||
- name: install frontend dependencies
|
||||
run: pnpm install
|
||||
- name: build and fix macOS
|
||||
if: matrix.platform == 'macos-latest'
|
||||
run: |
|
||||
pnpm tauri build ${{ matrix.args }}
|
||||
pnpm run post-build:macos
|
||||
- uses: tauri-apps/tauri-action@v0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tagName: nightly
|
||||
releaseName: 'Emerald Nightly'
|
||||
releaseBody: |
|
||||
# Emerald Legacy Launcher (Nightly)
|
||||
# What to download?
|
||||
- `Emerald.Legacy.Launcher-*.rpm` for GNU/Linux (RHEL)
|
||||
- `Emerald.Legacy.Launcher-*.deb` for GNU/Linux (Debian+Ubuntu)
|
||||
- `Emerald.Legacy.Launcher-*.AppImage` for GNU/Linux (Universal)
|
||||
- `Emerald.Legacy.Launcher-*_x64.dmg` for macOS (Intel)
|
||||
- `Emerald.Legacy.Launcher-*_aarch64.dmg` for macOS (M-series)
|
||||
- `Emerald.Legacy.Launcher-*.exe` for Windows (Setup)
|
||||
- `Emerald.Legacy.Launcher-*.msi` for Windows (Setup)
|
||||
---
|
||||
# Windows SmartScreen
|
||||
This software is completely safe. Because the launcher is unsigned, you will see a "Windows protected your PC" window. To proceed:
|
||||
|
||||
1. Click the **"More info"** link under the main text.
|
||||
2. Click the **"Run anyway"** button that appears.
|
||||
---
|
||||
# macOS "Damaged" Error Fix
|
||||
The macOS builds now include automatic fixes for Gatekeeper quarantine issues. The app should launch without "application is damaged" errors.
|
||||
|
||||
releaseDraft: false
|
||||
prerelease: true
|
||||
args: ${{ matrix.args }}
|
||||
|
||||
nightly-flatpak:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
needs: nightly-tauri # Wait for Tauri release to be created
|
||||
container:
|
||||
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08
|
||||
options: --privileged
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||
with:
|
||||
bundle: io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.flatpak
|
||||
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
|
||||
cache-key: flatpak-builder-${{ github.sha }}
|
||||
- uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.flatpak
|
||||
tag_name: nightly
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
42
.github/workflows/nix.yml
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
name: Nix
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: nix-${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
|
||||
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
|
||||
- name: Build stable package
|
||||
run: nix build .#emerald-legacy-launcher --print-build-logs
|
||||
|
||||
- name: Build git package
|
||||
run: nix build .#emerald-legacy-launcher-git --out-link result-git --print-build-logs
|
||||
|
||||
- name: Flake check
|
||||
run: nix flake check --print-build-logs
|
||||
|
||||
- name: Verify outputs
|
||||
run: |
|
||||
test -x ./result/bin/emerald-legacy-launcher
|
||||
test -x ./result-git/bin/emerald-legacy-launcher
|
||||
nix path-info -Sh ./result ./result-git
|
||||
ls -la ./result/bin/
|
||||
ls -la ./result-git/bin/
|
||||
ls -la ./result/share/applications/ || true
|
||||
247
.github/workflows/publish.yml
vendored
|
|
@ -1,5 +1,4 @@
|
|||
name: 'publish'
|
||||
|
||||
name: "publish"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
|
|
@ -8,26 +7,32 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.version.outputs.version }}
|
||||
body: ${{ steps.version.outputs.body }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- id: version
|
||||
run: echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
|
||||
run: |
|
||||
echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
|
||||
echo "body<<EOF" >> "$GITHUB_OUTPUT"
|
||||
cat RELEASE_NOTES.md >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
|
||||
publish-tauri:
|
||||
needs: get-version
|
||||
permissions:
|
||||
contents: write
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- platform: 'macos-latest'
|
||||
args: '--target aarch64-apple-darwin'
|
||||
- platform: 'macos-latest'
|
||||
args: '--target x86_64-apple-darwin'
|
||||
- platform: 'ubuntu-22.04'
|
||||
args: ''
|
||||
- platform: 'windows-latest'
|
||||
args: ''
|
||||
- platform: "macos-latest"
|
||||
args: "--target aarch64-apple-darwin"
|
||||
- platform: "macos-latest"
|
||||
args: "--target x86_64-apple-darwin"
|
||||
- platform: "ubuntu-22.04"
|
||||
args: ""
|
||||
- platform: "windows-latest"
|
||||
args: ""
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
|
|
@ -47,7 +52,7 @@ jobs:
|
|||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'pnpm'
|
||||
cache: "pnpm"
|
||||
|
||||
- name: install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
|
|
@ -57,69 +62,164 @@ jobs:
|
|||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: './src-tauri -> target'
|
||||
workspaces: "./src-tauri -> target"
|
||||
|
||||
- name: install frontend dependencies
|
||||
run: pnpm install
|
||||
- name: Create PKG with post-install script
|
||||
if: matrix.platform == 'macos-latest'
|
||||
run: |
|
||||
# Create temporary directory for PKG creation
|
||||
mkdir -p pkg_temp/scripts
|
||||
cp scripts/postinstall.sh pkg_temp/scripts/
|
||||
|
||||
# Build the app first
|
||||
pnpm tauri build -- ${{ matrix.args }}
|
||||
|
||||
# Find the built app
|
||||
APP_PATH=$(find src-tauri/target/release/bundle/macos/ -name "*.app" | head -1)
|
||||
APP_NAME=$(basename "$APP_PATH")
|
||||
|
||||
# Create PKG with post-install script
|
||||
pkgbuild --root "$APP_PATH/.." \
|
||||
--install-location /Applications \
|
||||
--scripts pkg_temp/scripts \
|
||||
--identifier "com.emerald.legacy" \
|
||||
--version "1.0.0" \
|
||||
--install-location "/Applications" \
|
||||
--root "$APP_PATH" \
|
||||
"Emerald-Legacy-Launcher.pkg"
|
||||
|
||||
# Move PKG to bundle directory
|
||||
mkdir -p src-tauri/target/release/bundle/macos/
|
||||
mv "Emerald-Legacy-Launcher.pkg" src-tauri/target/release/bundle/macos/
|
||||
- uses: tauri-apps/tauri-action@v0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
||||
with:
|
||||
tagName: v__VERSION__
|
||||
releaseName: 'Emerald v__VERSION__'
|
||||
releaseBody: |
|
||||
# What to download?
|
||||
- `Emerald.Legacy.Launcher-*.rpm` for GNU/Linux (RHEL)
|
||||
- `Emerald.Legacy.Launcher-*.deb` for GNU/Linux (Debian+Ubuntu)
|
||||
- `Emerald.Legacy.Launcher-*.AppImage` for GNU/Linux (Universal, Currently Broken)
|
||||
- `Emerald.Legacy.Launcher-*_x64.dmg` for macOS (Intel)
|
||||
- `Emerald.Legacy.Launcher-*_aarch64.dmg` for macOS (M-series)
|
||||
- `Emerald.Legacy.Launcher-*.exe` for Windows (Setup)
|
||||
- `Emerald.Legacy.Launcher-*.msi` for Windows (Setup)
|
||||
- `Emerald.Legacy.Launcher.flatpak` for GNU/Linux (Flatpak, Recommended)
|
||||
---
|
||||
# Windows SmartScreen
|
||||
This software is completely safe. Because the launcher is unsigned, you will see a "Windows protected your PC" window. To proceed:
|
||||
|
||||
1. Click the **"More info"** link under the main text.
|
||||
2. Click the **"Run anyway"** button that appears.
|
||||
---
|
||||
# macOS "Damaged" Error Fix
|
||||
The macOS builds now include automatic fixes for Gatekeeper quarantine issues. The app should launch without "application is damaged" errors.
|
||||
|
||||
releaseDraft: false
|
||||
releaseName: "Emerald v__VERSION__"
|
||||
releaseBody: ${{ needs.get-version.outputs.body }}
|
||||
releaseDraft: true
|
||||
prerelease: false
|
||||
uploadUpdaterJson: true
|
||||
args: ${{ matrix.args }}
|
||||
|
||||
build-appimage:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux:latest
|
||||
steps:
|
||||
- name: Bootstrap keyring and git
|
||||
run: |
|
||||
pacman -Syu --noconfirm archlinux-keyring
|
||||
pacman -S --noconfirm --needed git
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
src-tauri/target
|
||||
node_modules
|
||||
/var/cache/pacman/pkg
|
||||
key: arch-${{ hashFiles('src-tauri/Cargo.lock', 'pnpm-lock.yaml') }}
|
||||
restore-keys: arch-
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
pacman -S --noconfirm --needed \
|
||||
base-devel wget zsync nodejs patchelf \
|
||||
cargo cargo-tauri \
|
||||
gtk3 libayatana-appindicator webkit2gtk-4.1 glib-networking librsvg \
|
||||
xorg-server-xvfb
|
||||
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
|
||||
- name: Build deb with tauri
|
||||
run: |
|
||||
pnpm install
|
||||
cargo-tauri build --bundles deb --config '{"bundle":{"createUpdaterArtifacts":false},"build":{"beforeBuildCommand":"pnpm build"}}'
|
||||
|
||||
- name: Extract deb into /usr
|
||||
run: |
|
||||
cd src-tauri/target/release/bundle/deb
|
||||
ar x ./*.deb
|
||||
tar -xf data.tar.*
|
||||
cp -a usr/. /usr/
|
||||
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
cd pkg/AppImage
|
||||
chmod +x ./AppImage.sh
|
||||
./AppImage.sh
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: appimage
|
||||
path: pkg/AppImage/dist/*.AppImage* #neo: *.AppImage* because .zsync as well
|
||||
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: "pnpm"
|
||||
|
||||
- name: setup Java 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: "17"
|
||||
|
||||
- name: setup Android SDK
|
||||
uses: android-actions/setup-android@v4
|
||||
|
||||
- name: install Android SDK components
|
||||
run: |
|
||||
sdkmanager --install "platforms;android-36" "build-tools;36.0.0" "ndk;28.2.13676358"
|
||||
yes | sdkmanager --licenses
|
||||
sudo apt-get install -y glslang-tools
|
||||
|
||||
- name: install Rust stable with android target
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: aarch64-linux-android
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: "./src-tauri -> target"
|
||||
|
||||
- name: install frontend dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: download android bundled assets
|
||||
run: pnpm android:assets
|
||||
|
||||
- name: restore gradle wrapper jar
|
||||
run: |
|
||||
VER=$(sed -n 's/.*gradle-\([0-9][0-9.]*\)-bin\.zip.*/\1/p' src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties)
|
||||
curl -fL -o src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar \
|
||||
"https://raw.githubusercontent.com/gradle/gradle/v${VER}/gradle/wrapper/gradle-wrapper.jar"
|
||||
|
||||
- name: set up android signing keystore
|
||||
env:
|
||||
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
run: |
|
||||
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > src-tauri/gen/android/app/release.keystore
|
||||
cat > src-tauri/gen/android/app/key.properties <<EOF
|
||||
keyAlias=$ANDROID_KEY_ALIAS
|
||||
keyPassword=$ANDROID_KEYSTORE_PASSWORD
|
||||
storeFile=release.keystore
|
||||
storePassword=$ANDROID_KEYSTORE_PASSWORD
|
||||
EOF
|
||||
|
||||
- name: build Android APK
|
||||
env:
|
||||
ANDROID_NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
|
||||
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
|
||||
run: npx tauri android build --target aarch64
|
||||
|
||||
- name: upload APK
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: src-tauri/gen/android/app/build/outputs/apk/universal/release/*.apk
|
||||
|
||||
publish-flatpak:
|
||||
needs: get-version
|
||||
needs: [get-version, build-appimage, build-android]
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
|
|
@ -130,16 +230,29 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- name: sleep for 10 seconds
|
||||
run: sleep 10
|
||||
- name: sleep for 20 seconds
|
||||
run: sleep 20
|
||||
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||
with:
|
||||
bundle: Emerald.Legacy.Launcher.flatpak
|
||||
bundle: emerald.flatpak
|
||||
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
|
||||
cache-key: flatpak-builder-${{ github.sha }}
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: appimage
|
||||
path: appimage
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: android
|
||||
- uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
body: ${{ needs.get-version.outputs.body }}
|
||||
tag_name: v${{ needs.get-version.outputs.version }}
|
||||
files: Emerald.Legacy.Launcher.flatpak
|
||||
files: |
|
||||
emerald.flatpak
|
||||
appimage/*.AppImage*
|
||||
android/*.apk
|
||||
draft: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
|
|
|||
47
.github/workflows/update-homebrew-stable.yml
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
name: Update Homebrew Cask (Stable)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
update-cask:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: main
|
||||
|
||||
- name: Download release assets and update homebrew files
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
TAG="${{ github.event.release.tag_name }}"
|
||||
VERSION="${TAG#v}"
|
||||
echo "Processing tag $TAG (version: $VERSION)"
|
||||
|
||||
mkdir -p dist
|
||||
# Download the Intel dmg, Apple Silicon dmg, and Linux AppImage
|
||||
gh release download "$TAG" --dir dist --pattern "*_x64.dmg" --pattern "*_aarch64.dmg" --pattern "*_amd64.AppImage" -R "${{ github.repository }}"
|
||||
ls -l dist
|
||||
|
||||
# Calculate hashes
|
||||
INTEL_HASH=$(sha256sum dist/*_x64.dmg | cut -d' ' -f1)
|
||||
ARM_HASH=$(sha256sum dist/*_aarch64.dmg | cut -d' ' -f1)
|
||||
LINUX_HASH=$(sha256sum dist/*_amd64.AppImage | cut -d' ' -f1)
|
||||
|
||||
echo "Intel SHA: $INTEL_HASH"
|
||||
echo "ARM SHA: $ARM_HASH"
|
||||
echo "Linux SHA: $LINUX_HASH"
|
||||
|
||||
python3 scripts/update-homebrew.py --type stable --version "$VERSION" --intel-hash "$INTEL_HASH" --arm-hash "$ARM_HASH" --linux-hash "$LINUX_HASH"
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git add Casks/ Formula/
|
||||
git diff --quiet && git diff --staged --quiet || (git commit -m "chore: update stable Homebrew casks/formula [skip ci]" && git push origin main)
|
||||
41
.github/workflows/update-nix-stable.yml
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
name: Update Nix Flake (Stable)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
update-flake:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: main
|
||||
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
|
||||
- name: Prefetch release source and update flake.nix
|
||||
run: |
|
||||
TAG="${{ github.event.release.tag_name }}"
|
||||
VERSION="${TAG#v}"
|
||||
echo "Processing tag $TAG (version: $VERSION)"
|
||||
|
||||
BASE32_HASH=$(nix-prefetch-url --unpack \
|
||||
"https://github.com/LCE-Hub/LCE-Emerald-Launcher/archive/refs/tags/${TAG}.tar.gz")
|
||||
SRC_HASH=$(nix hash to-sri --type sha256 "$BASE32_HASH")
|
||||
|
||||
echo "stableSrcHash: $SRC_HASH"
|
||||
python3 scripts/update-nix-stable.py --version "$VERSION" --src-hash "$SRC_HASH"
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git add flake.nix
|
||||
git diff --quiet && git diff --staged --quiet || (
|
||||
git commit -m "chore: update Nix stable pin to ${{ github.event.release.tag_name }} [skip ci]" &&
|
||||
git push origin main
|
||||
)
|
||||
12
.gitignore
vendored
|
|
@ -1,5 +1,6 @@
|
|||
# Rust
|
||||
/src-tauri/target/
|
||||
/src-tauri/tests
|
||||
|
||||
# Node
|
||||
/node_modules/
|
||||
|
|
@ -23,6 +24,10 @@
|
|||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Nix
|
||||
/result
|
||||
/result-*
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
|
||||
|
|
@ -30,4 +35,9 @@ Thumbs.db
|
|||
/.flatpak-builder
|
||||
/*.flatpak
|
||||
/emerald-repo
|
||||
/ignore/*
|
||||
/ignore/*
|
||||
|
||||
# Android bundled runtime assets (too large for GitHub; must be present in the working tree)
|
||||
/src-tauri/gen/android/app/src/main/assets/imagefs.tar.zst
|
||||
/src-tauri/gen/android/app/src/main/assets/proton-*.tar.zst
|
||||
|
||||
|
|
|
|||
3
.gitmodules
vendored
|
|
@ -1,3 +1,6 @@
|
|||
[submodule "flatpak/shared-modules"]
|
||||
path = flatpak/shared-modules
|
||||
url = https://github.com/flathub/shared-modules.git
|
||||
[submodule "DiamondRuntime"]
|
||||
path = DiamondRuntime
|
||||
url = https://github.com/LCE-Hub/DiamondRuntime.git
|
||||
|
|
|
|||
|
|
@ -32,4 +32,17 @@ codesign --force --deep --sign - "/path/to/Emerald\ Legacy\ Launcher.app"
|
|||
|
||||
```sh
|
||||
pnpm flatpak # or npm
|
||||
```
|
||||
```
|
||||
|
||||
## Gentoo
|
||||
|
||||
A Portage overlay lives in [`gentoo/`](gentoo/). See the GNU/Linux installation section in [README.md](README.md).
|
||||
|
||||
## Android
|
||||
|
||||
Building Emerald on Android is pretty easy,
|
||||
|
||||
```sh
|
||||
pnpm android:assets #neo: fetches the rootfs and proton11
|
||||
pnpm tauri android build -t aarch64
|
||||
```
|
||||
18
Casks/lce-emerald-launcher.rb
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
cask "lce-emerald-launcher" do
|
||||
version "1.6.1"
|
||||
sha256 intel: "dd86c3f63088585f71ab94acd7c3e3ec0b535fc06ef71e7770741e08fe60782f",
|
||||
arm: "e2e6c50a5b0b847ed7c857ab8a4ae421fa8666096f3c9fa8bb216f21639dcfd2"
|
||||
|
||||
url "https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/download/v#{version}/LCE.Emerald.Launcher_#{version}_#{arch}.dmg"
|
||||
name "LCE Emerald Launcher"
|
||||
desc "Minecraft Legacy Console Edition Launcher"
|
||||
homepage "https://github.com/LCE-Hub/LCE-Emerald-Launcher"
|
||||
|
||||
app "LCE Emerald Launcher/LCE Emerald Launcher.app"
|
||||
|
||||
zap trash: [
|
||||
"~/Library/Application Support/com.emerald.legacy",
|
||||
"~/Library/Preferences/com.emerald.legacy.plist",
|
||||
"~/Library/Saved Application State/com.emerald.legacy.savedState",
|
||||
]
|
||||
end
|
||||
1
DiamondRuntime
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit c3f56e880c4c59fe591fa2bf863ea6f247886749
|
||||
19
Formula/lce-emerald-launcher.rb
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
class LceEmeraldLauncher < Formula
|
||||
desc "Minecraft Legacy Console Edition Launcher"
|
||||
homepage "https://github.com/LCE-Hub/LCE-Emerald-Launcher-cask"
|
||||
url "https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/download/v#{version}/LCE.Emerald.Launcher_#{version}_amd64.AppImage"
|
||||
sha256 "3f135df96014e6bf83ced13a89ba2ec4599532104e60aea97c45d1d246de62f2"
|
||||
version "1.6.1"
|
||||
license "GPL-3.0-only"
|
||||
|
||||
depends_on :linux
|
||||
|
||||
def install
|
||||
# Rename and install the AppImage
|
||||
bin.install "LCE.Emerald.Launcher_#{version}_amd64.AppImage" => "lce-emerald-launcher"
|
||||
end
|
||||
|
||||
test do
|
||||
assert_predicate bin/"lce-emerald-launcher", :exist?
|
||||
end
|
||||
end
|
||||
216
README.md
|
|
@ -1,12 +1,11 @@
|
|||
<div align="center">
|
||||
<img height="150" src="https://raw.githubusercontent.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher/refs/heads/main/public/images/icon.png" alt="LCE Emerald Launcher Logo">
|
||||
<img height="150" src="https://raw.githubusercontent.com/LCE-Hub/LCE-Emerald-Launcher/refs/heads/main/public/images/icon.png" alt="LCE Emerald Launcher Logo">
|
||||
<h1>LCE Emerald Launcher</h1>
|
||||
<p><strong>FOSS cross-platform launcher for Minecraft Legacy Console Edition</strong></p>
|
||||
|
||||
<p>
|
||||
<img src="https://img.shields.io/badge/version-1.0.0-blue?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/version-1.6.1-blue?style=flat-square" alt="Version">
|
||||
<img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License">
|
||||
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey?style=flat-square" alt="Platforms">
|
||||
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20GNU/Linux-lightgrey?style=flat-square" alt="Platforms">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -14,16 +13,20 @@
|
|||
<a href="https://ko-fi.com/kayjann">
|
||||
<img src="https://img.shields.io/badge/ko--fi-Donate%20to%20the%20Project-grey?style=for-the-badge&logo=kofi&logoColor=white&labelColor=FF5E5B" alt="Donate to the Project">
|
||||
</a>
|
||||
<a href="https://discord.gg/vD8akRU24f">
|
||||
<a href="https://discord.gg/cQVKhQXcCx">
|
||||
<img src="https://img.shields.io/badge/discord-Join%20the%20Community-grey?style=for-the-badge&logo=discord&logoColor=white&labelColor=5865F2" alt="Join the Community">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **macOS support for LCE Emerald Launcher is currently in Beta.**
|
||||
> Expect minor bugs, frequent updates, and features that are still being polished as we work toward a stable release.
|
||||
| Main Screen | Versions Menu | Workshop |
|
||||
|-------------|---------------|----------|
|
||||
| <img width="1388" height="918" alt="image" src="https://github.com/user-attachments/assets/28269ade-db3b-4bff-ac15-e8a6eb53a69e" /> | <img width="1551" height="997" alt="image" src="https://github.com/user-attachments/assets/dca543ab-94cf-48ce-8e61-dfe92fe278a7" /> | <img width="1551" height="997" alt="image" src="https://github.com/user-attachments/assets/d7bc0ed2-3bf4-4704-83c3-75c716d13a65" /> |
|
||||
|
||||
<a href="https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/latest">
|
||||
<img src="https://raw.githubusercontent.com/rubenpgrady/get-it-on-github/refs/heads/main/get-it-on-github.png" style="width: 160px">
|
||||
</a>
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -31,15 +34,12 @@
|
|||
|
||||
- [Overview](#overview)
|
||||
- [Features](#features)
|
||||
- [Screenshots](#screenshots)
|
||||
- [Installation](#installation)
|
||||
- [Windows](#windows)
|
||||
- [macOS](#macos)
|
||||
- [Linux](#linux)
|
||||
- [Game Versions & Partnerships](#game-versions--partnerships)
|
||||
- [GNU/Linux](#gnulinux)
|
||||
- [Building from Source](#building-from-source)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Roadmap](#roadmap)
|
||||
- [Acknowledgments](#acknowledgments)
|
||||
- [License](#license)
|
||||
|
||||
|
|
@ -47,63 +47,29 @@
|
|||
|
||||
## Overview
|
||||
|
||||
Emerald Legacy Launcher is a **high-performance, open-source launcher** for Minecraft Legacy Console Edition (LCE). Built to centralize the fragmented LCE scene, it provides a lightweight, unified hub for playing your favorite console versions of Minecraft on PC.
|
||||
LCE Emerald Launcher is the easiest way to play Minecraft Legacy Console Edition on PC. Install community builds, manage versions, customize skins, and launch instantly from one lightweight hub.
|
||||
|
||||
**Why Emerald?** Traditional launchers often rely on bloated frameworks, consuming excessive resources. Emerald utilizes a modern **Rust/Tauri** architecture, using only **~15MB of RAM** — leaving your PC's resources dedicated to the game itself.
|
||||
|
||||
The project started as a solo effort and has grown into a collaborative community project, bringing together expertise from various LCE preservation initiatives.
|
||||
**Why Emerald?** Traditional launchers often rely on bloated frameworks, consuming excessive resources. Emerald utilizes a modern **Tauri** architecture, using only a low amount of RAM, leaving your PC's resources dedicated to the game itself.
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
### Core Features
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| **Automated Setup** | One-click installation for TU19, Legacy Evolved, Revelations, and 360Revived versions |
|
||||
| **Cross-Platform** | Native support for Windows, macOS (Intel & Apple Silicon), and Linux |
|
||||
| **Automated Setup** | One-click installation for neoLegacy, Revelations, 360 Revived, Hellish Ends and others |
|
||||
| **Cross-Platform** | Native support for Windows, macOS (Intel & Apple Silicon), and Linux (Steam Deck is also supported!) |
|
||||
| **Lightweight** | Very light RAM usage thanks to Rust backend and Tauri framework |
|
||||
| **Easy Configuration** | Built-in settings for username, game parameters, and profiles |
|
||||
|
||||
### Advanced Features
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| **3D Skin Viewer** | Interactive skin preview using Three.js with layer support |
|
||||
| **Custom Skins** | Import and manage your own skins with local storage |
|
||||
| **Controller Support** | Full gamepad navigation support (keyboard fallback included) |
|
||||
| **Skin Viewer** | Interactive skin preview using Three.js with layer support |
|
||||
| **Custom Skins** | Import and manage your own skins and capes |
|
||||
| **Controller Support** | Full gamepad navigation support (keyboard support included) |
|
||||
| **Discord Rich Presence** | Show your current activity and game status on Discord |
|
||||
| **Workshop and modloader** | *(Coming Soon)* Community content and mod browser |
|
||||
|
||||
---
|
||||
|
||||
## Game Versions & Partnerships
|
||||
|
||||
Emerald Legacy Launcher integrates multiple community-driven builds of Minecraft Legacy Console Edition. Each build brings unique features and improvements to the classic LCE experience.
|
||||
|
||||
### Available Builds
|
||||
|
||||
| Build | Developer | Platform | Description |
|
||||
|-------|-----------|----------|-------------|
|
||||
| **[Revelations](https://github.com/itsRevela/MinecraftConsoles)** | [@itsRevela](https://github.com/itsRevela) | GitHub | Enhanced LCE with uncapped FPS, graphics fixes, hardcore hearts, and dedicated server security. Features LAN multiplayer, split-screen, and keyboard & mouse support. |
|
||||
| **[360 Revived](https://github.com/BluTac10/360Revived)** | [@BluTac10](https://github.com/BluTac10) | GitHub | PC port of Xbox 360 Edition TU19 with desktop optimizations. Features keyboard & mouse, fullscreen, LAN multiplayer, dedicated server, and split-screen support. |
|
||||
| **[Legacy Evolved](https://codeberg.org/piebot/LegacyEvolved)** | [@piebot](https://codeberg.org/piebot) | Codeberg | Backports newer title updates to LCE TU19 base. Currently porting TU25 (~98% complete) and TU31 (~76% complete). |
|
||||
|
||||
### Coming Soon: Legacy Minecraft Restoration Project (LMRP)
|
||||
|
||||
**LMRP** will be our **first major collaboration** to bring fully functional **online mini-games** back to Legacy Console Edition. This groundbreaking project aims to:
|
||||
|
||||
- Restore classic LCE mini-games (Battle, Tumble, Glide)
|
||||
- Preserve the authentic mini-game mechanics and maps
|
||||
|
||||
Stay tuned for updates on this exciting partnership! :)
|
||||
|
||||
---
|
||||
|
||||
## Screenshots
|
||||
|
||||
<img width="1680" alt="Emerald Legacy Launcher Screenshot" src="https://github.com/user-attachments/assets/a5dd6aa1-2200-4f08-84e5-e75a8052ba79" />
|
||||
| **Workshop** | Community content like DLCs, Textures, Skins and more |
|
||||
| **Free Multiplayer** | Powered by LCEOnline, Emerald provides a free multiplayer service so you can play with anyone without port forwarding! |
|
||||
| **Developer Tools** | Create and edit 4J's propriatery file formats with ease! |
|
||||
| **World conversion** | Import `.ms` files, Java worlds or even an Xbox 360/PS3 world! |
|
||||
| **Playtime counting** | Count your playtime and see your most active days! |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -111,12 +77,10 @@ Stay tuned for updates on this exciting partnership! :)
|
|||
|
||||
### Windows
|
||||
|
||||
Download the latest release from [GitHub Releases](https://github.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher/releases):
|
||||
|
||||
| Format | Best For |
|
||||
|--------|----------|
|
||||
| `.exe` (NSIS) | Standard installation with uninstaller |
|
||||
| `.msi` | Enterprise/IT deployment |
|
||||
| `.msi` | A fallback option in case the `.exe` does not work |
|
||||
|
||||
**⚠️ Windows SmartScreen Warning:**
|
||||
> Since the launcher is unsigned, Windows may show a "Windows protected your PC" warning. To proceed:
|
||||
|
|
@ -128,7 +92,8 @@ Download the latest release from [GitHub Releases](https://github.com/Emerald-Le
|
|||
| Format | Architecture |
|
||||
|--------|-------------|
|
||||
| `.dmg` (x64) | Intel Macs |
|
||||
| `.dmg` (aarch64) | Apple Silicon (M1/M2/M3) |
|
||||
| `.dmg` (aarch64) | Apple Silicon (M-series and A-series) |
|
||||
| Homebrew Cask | Intel & Apple Silicon (via tap) |
|
||||
|
||||
**Installation Steps:**
|
||||
1. Download the appropriate DMG for your Mac
|
||||
|
|
@ -137,7 +102,16 @@ Download the latest release from [GitHub Releases](https://github.com/Emerald-Le
|
|||
- Right-click the app → **Open** → confirm **Open**
|
||||
- Or run: `xattr -cr "/Applications/Emerald Legacy Launcher.app"`
|
||||
|
||||
### Linux
|
||||
**Homebrew:**
|
||||
```bash
|
||||
# Tap the repository
|
||||
brew tap LCE-Hub/lce-emerald-launcher https://github.com/LCE-Hub/LCE-Emerald-Launcher
|
||||
|
||||
# Install stable release
|
||||
brew install --cask lce-emerald-launcher
|
||||
```
|
||||
|
||||
### GNU/Linux
|
||||
|
||||
Multiple distribution formats available:
|
||||
|
||||
|
|
@ -146,13 +120,67 @@ Multiple distribution formats available:
|
|||
| `.deb` | Debian, Ubuntu, Linux Mint |
|
||||
| `.rpm` | RHEL, Fedora, openSUSE |
|
||||
| `.AppImage` | Universal (no installation required) |
|
||||
| `Flatpak` | Universal with sandboxing |
|
||||
| `.flatpak` | Universal with sandboxing (recommended over AppImage) |
|
||||
| Nix flake | NixOS and any Linux with [Nix](https://nixos.org/download/) installed |
|
||||
| Homebrew | Any Linux with [Homebrew](https://brew.sh/) installed |
|
||||
|
||||
**AUR:**
|
||||
Special thanks to [AntiApple4life](https://aur.archlinux.org/packages?O=0&SeB=m&K=AntiApple4life) for the AUR packages!
|
||||
```bash
|
||||
# git version
|
||||
paru -S emerald-legacy-launcher-git # or yay
|
||||
|
||||
# stable version
|
||||
paru -S emerald-legacy-launcher # or yay
|
||||
|
||||
# binary stable version
|
||||
paru -S emerald-legacy-launcher-bin # or yay
|
||||
```
|
||||
|
||||
**Nix:**
|
||||
Requires [Nix](https://nixos.org/download/) with flakes enabled (`experimental-features = nix-command flakes` in `nix.conf`).
|
||||
```bash
|
||||
# stable release (default) — tracks https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases
|
||||
nix run github:LCE-Hub/LCE-Emerald-Launcher
|
||||
# or explicitly:
|
||||
nix run github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher
|
||||
|
||||
# git / latest main
|
||||
nix run github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher-git
|
||||
|
||||
# Install to your user profile
|
||||
nix profile install github:LCE-Hub/LCE-Emerald-Launcher # stable
|
||||
nix profile install github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher-git # git
|
||||
```
|
||||
|
||||
On NixOS, add the flake as an input and install `packages.<system>.default` / `emerald-legacy-launcher` (stable) or `emerald-legacy-launcher-git` (main).
|
||||
|
||||
**Gentoo:**
|
||||
This repository includes a local Portage overlay under [`gentoo/`](gentoo/). Point `repos.conf` at that directory, then emerge the package (build fetches Cargo/npm deps over the network; Wine/Proton is needed at runtime to launch games):
|
||||
```bash
|
||||
# /etc/portage/repos.conf/emerald-legacy-launcher.conf
|
||||
[emerald-legacy-launcher]
|
||||
location = /path/to/LCE-Emerald-Launcher/gentoo
|
||||
auto-sync = no
|
||||
|
||||
sudo emerge games-util/emerald-legacy-launcher # 1.6.1
|
||||
# sudo emerge =games-util/emerald-legacy-launcher-9999 # live git
|
||||
```
|
||||
|
||||
**Flatpak Installation:**
|
||||
```bash
|
||||
flatpak install emerald.flatpak
|
||||
```
|
||||
|
||||
**Homebrew:**
|
||||
```bash
|
||||
# Tap the repository
|
||||
brew tap LCE-Hub/lce-emerald-launcher https://github.com/LCE-Hub/LCE-Emerald-Launcher
|
||||
|
||||
# Install stable release
|
||||
brew install lce-emerald-launcher
|
||||
```
|
||||
|
||||
**Dependencies (if building from source):**
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
|
|
@ -166,37 +194,7 @@ sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel p
|
|||
|
||||
## Building from Source
|
||||
|
||||
### Requirements
|
||||
|
||||
- **Node.js** (LTS recommended)
|
||||
- **Rust** (latest stable)
|
||||
- **PNPM** (recommended) or NPM
|
||||
- Platform-specific dependencies:
|
||||
- Linux: `WebKit2GTK-4.1`
|
||||
- macOS: WebKit (pre-installed)
|
||||
- Windows: Edge WebView2 Runtime (usually pre-installed)
|
||||
|
||||
### Build Steps
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher.git
|
||||
cd Emerald-Legacy-Launcher
|
||||
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Development mode
|
||||
pnpm tauri dev
|
||||
|
||||
# Production build
|
||||
pnpm tauri build
|
||||
```
|
||||
|
||||
**Flatpak Build:**
|
||||
```bash
|
||||
pnpm flatpak
|
||||
```
|
||||
Refer to [BUILDING.md](BUILDING.md).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -230,36 +228,20 @@ sudo apt install --reinstall libwebkit2gtk-4.1-0
|
|||
### Controller Not Detected
|
||||
|
||||
- Connect controller before launching the launcher
|
||||
- Xbox and PlayStation controllers are best supported
|
||||
|
||||
---
|
||||
|
||||
## Roadmap
|
||||
|
||||
Track our progress and upcoming features on the [Development Roadmap](https://github.com/orgs/Emerald-Legacy-Launcher/projects/2).
|
||||
- PlayStation controllers are not supported in-game but work in launcher. Use Steam Input.
|
||||
|
||||
---
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
*Proudly developed by a passionate team from the LCE community.*
|
||||
|
||||
- **The Emerald Team** — Technical development and maintenance
|
||||
- **4J Studios & Mojang** — Original creators of Legacy Console Edition
|
||||
- **The LCE Community** — Research and foundations for LCE on PC
|
||||
- **Tauri & Rust Communities** — Core technologies and ecosystem
|
||||
- **The Emerald Team** - Technical development and maintenance
|
||||
- **4J Studios & Mojang** - Original creators of Legacy Console Edition
|
||||
- **The LCE Community** - Research and foundations for LCE on PC
|
||||
- **Str1k3r** - Original creator of LCEOnline
|
||||
- **DTention** - Original creator of [LCE-Save-Converter](https://github.com/dtentiion/LCE-Save-Converter)
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the **[GNU GPL v3 License](LICENSE)**.
|
||||
|
||||
You are free to:
|
||||
- **Use** — Use the launcher for any purpose
|
||||
- **Study** — Access and study the source code
|
||||
- **Share** — Redistribute copies
|
||||
- **Improve** — Submit improvements and modifications
|
||||
|
||||
See `LICENSE` file for full terms.
|
||||
|
||||
|
|
|
|||
BIN
RELEASE_ARTWORK.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
25
RELEASE_NOTES.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||

|
||||
|
||||
- Fix title bar and panorama not showing on setup
|
||||
- **Partnership with LapboardMC!**
|
||||
- **Removed LCEOnline Client, LCEOnline functionality is built into Emerald**
|
||||
- Fix audio skipping bug on Windows
|
||||
- Gentoo, Nix flakes and Homebrew support
|
||||
- **Xbox 360, PS3 and Java -> LCE world importing support (beta!)**
|
||||
- Proper Discord RPC shutdown
|
||||
- Remove click effects when disabling animations
|
||||
- **FULL Android Port powered by our own DiamondRuntime for running the game!**
|
||||
- Fix neoLegacy downloading issue
|
||||
- **A lot of UI polish (thanks piebot!)**
|
||||
- Add 2 default capes
|
||||
- Add more default skins
|
||||
- **Emerald Arguments.Schema support!**
|
||||
- **Partnership with Amythest LCE**
|
||||
- Fix Slim skins rendering in-launcher
|
||||
- Randomize splash texts
|
||||
- **Partnership with Project Lost Legacy (soon!)**
|
||||
- Add Player Head to Discord RPC
|
||||
- Make skin face inwards instead of outwards
|
||||
- Game crash log viewer support!
|
||||
- **Intel macOS support**
|
||||
- And more that I forgot!
|
||||
27
flake.lock
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1784120854,
|
||||
"narHash": "sha256-KesHgItiZPgGX740axSiQLcIQ8D24MDqNpkKYWIek8k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "753cc8a3a87467296ddd1fa93f0cc3e81120ee46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
107
flake.nix
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
description = "LCE Emerald Launcher — FOSS cross-platform launcher for Minecraft Legacy Console Edition";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs }:
|
||||
let
|
||||
inherit (nixpkgs) lib;
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
forAllSystems = lib.genAttrs systems;
|
||||
pkgsFor =
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
};
|
||||
|
||||
# Bump these together when packaging a new upstream stable release.
|
||||
stableVersion = "1.6.0";
|
||||
stableSrcHash = "sha256-VlqBCZa42MLmJ1nUNlH7PIcLp/X7mBLCS/hm/ISiHNA=";
|
||||
in
|
||||
{
|
||||
overlays.default = final: _prev: {
|
||||
emerald-legacy-launcher = final.callPackage ./nix/package.nix {
|
||||
version = stableVersion;
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "LCE-Hub";
|
||||
repo = "LCE-Emerald-Launcher";
|
||||
rev = "v${stableVersion}";
|
||||
hash = stableSrcHash;
|
||||
};
|
||||
};
|
||||
|
||||
emerald-legacy-launcher-git = final.callPackage ./nix/package.nix {
|
||||
version = "unstable-${self.shortRev or self.dirtyShortRev or "dirty"}";
|
||||
src = self;
|
||||
};
|
||||
};
|
||||
|
||||
packages = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = pkgsFor system;
|
||||
in
|
||||
{
|
||||
default = pkgs.emerald-legacy-launcher;
|
||||
emerald-legacy-launcher = pkgs.emerald-legacy-launcher;
|
||||
emerald-legacy-launcher-git = pkgs.emerald-legacy-launcher-git;
|
||||
}
|
||||
);
|
||||
|
||||
apps = forAllSystems (system: {
|
||||
default = {
|
||||
type = "app";
|
||||
program = lib.getExe self.packages.${system}.default;
|
||||
};
|
||||
emerald-legacy-launcher-git = {
|
||||
type = "app";
|
||||
program = lib.getExe self.packages.${system}.emerald-legacy-launcher-git;
|
||||
};
|
||||
});
|
||||
|
||||
checks = forAllSystems (system: {
|
||||
package = self.packages.${system}.default;
|
||||
package-git = self.packages.${system}.emerald-legacy-launcher-git;
|
||||
});
|
||||
|
||||
devShells = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = pkgsFor system;
|
||||
in
|
||||
{
|
||||
default = pkgs.mkShell {
|
||||
inputsFrom = [ pkgs.emerald-legacy-launcher-git ];
|
||||
packages = with pkgs; [
|
||||
cargo
|
||||
rustc
|
||||
rustfmt
|
||||
clippy
|
||||
cargo-tauri
|
||||
nodejs
|
||||
pnpm_10
|
||||
unzip
|
||||
libarchive
|
||||
python3
|
||||
pkg-config
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Emerald Legacy Launcher dev shell"
|
||||
echo " pnpm install && pnpm tauri dev"
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
formatter = forAllSystems (system: (pkgsFor system).nixfmt);
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=Emerald Legacy Launcher
|
||||
Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition
|
||||
Exec=emerald-legacy-launcher
|
||||
Exec=emerald-legacy-launcher %u
|
||||
Icon=io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
Categories=Game;
|
||||
MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871;
|
||||
StartupNotify=true
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
<url type="homepage">https://github.com</url>
|
||||
<developer_name>Emerald Team</developer_name>
|
||||
<releases>
|
||||
<release version="1.0.0" date="2026-03-19">
|
||||
<release version="1.6.0" date="2026-03-19">
|
||||
<description>
|
||||
<p>Latest stable release of the Emerald Legacy Launcher.</p>
|
||||
</description>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ sdk-extensions:
|
|||
command: emerald-legacy-launcher
|
||||
finish-args:
|
||||
- --share=network
|
||||
- --share=ipc
|
||||
- --device=input
|
||||
- --socket=x11
|
||||
- --socket=wayland
|
||||
|
|
@ -15,6 +16,9 @@ finish-args:
|
|||
- --filesystem=xdg-data
|
||||
- --socket=pulseaudio
|
||||
- --filesystem=xdg-run/pipewire-0
|
||||
- --socket=session-bus
|
||||
- --talk-name=org.freedesktop.portal.Desktop
|
||||
- --talk-name=org.freedesktop.portal.OpenURI
|
||||
|
||||
modules:
|
||||
- shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json
|
||||
|
|
|
|||
1
gentoo/games-util/emerald-legacy-launcher/Manifest
Normal file
|
|
@ -0,0 +1 @@
|
|||
DIST emerald-legacy-launcher-1.5.1.tar.gz 18500442 BLAKE2B 365d9dd36ee6fddb90625719b599c8fc492eba4ce0fb8926c953f2a7d7f4987bf77d91de6a140a489534ba61e8a71bf9e65d8e015a35af31bccb84ca3a023178 SHA512 c713ef81e56d55d7135fa4228f875822a3eee38ace86d8d28a59a8b4afeff28844bf698e9902eb66075b425a0fb71ae72969ae1fe99ce185a005b5f42a4dccc8
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
# Copyright 2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop xdg
|
||||
|
||||
DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition"
|
||||
HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher"
|
||||
SRC_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/LCE-Emerald-Launcher-${PV}"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
# Cargo crates and npm packages are fetched at build time.
|
||||
RESTRICT="network-sandbox"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/glib:2
|
||||
dev-libs/libayatana-appindicator
|
||||
dev-libs/openssl:=
|
||||
net-libs/libsoup:3.0
|
||||
net-libs/webkit-gtk:4.1
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/pango
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
|| (
|
||||
>=dev-lang/rust-1.77.0:*
|
||||
>=dev-lang/rust-bin-1.77.0:*
|
||||
)
|
||||
net-libs/nodejs[npm]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# Rust binaries ignore *FLAGS from make.conf.
|
||||
QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Disable updater artifact signing (no Tauri signing key in distro builds).
|
||||
sed -i \
|
||||
-e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \
|
||||
src-tauri/tauri.conf.json || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -x CI=true
|
||||
local -x npm_config_audit=false
|
||||
local -x npm_config_fund=false
|
||||
local -x npm_config_update_notifier=false
|
||||
|
||||
npm install || die "npm install failed"
|
||||
npm run tauri -- build --no-bundle || die "tauri build failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin src-tauri/target/release/emerald-legacy-launcher
|
||||
|
||||
newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png
|
||||
newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png
|
||||
newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png
|
||||
newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png
|
||||
newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png
|
||||
|
||||
domenu "${FILESDIR}"/emerald-legacy-launcher.desktop
|
||||
|
||||
insinto /usr/share/metainfo
|
||||
newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \
|
||||
io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml
|
||||
|
||||
dodoc README.md LICENSE
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
# Copyright 2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop git-r3 xdg
|
||||
|
||||
DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition"
|
||||
HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher"
|
||||
EGIT_REPO_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher.git"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
PROPERTIES="live"
|
||||
|
||||
# Cargo crates and npm packages are fetched at build time.
|
||||
RESTRICT="network-sandbox"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/glib:2
|
||||
dev-libs/libayatana-appindicator
|
||||
dev-libs/openssl:=
|
||||
net-libs/libsoup:3.0
|
||||
net-libs/webkit-gtk:4.1
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/pango
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
|| (
|
||||
>=dev-lang/rust-1.77.0:*
|
||||
>=dev-lang/rust-bin-1.77.0:*
|
||||
)
|
||||
net-libs/nodejs[npm]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# Rust binaries ignore *FLAGS from make.conf.
|
||||
QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Prefer npm for the frontend build; disable updater artifact signing
|
||||
# (no Tauri signing key in distro builds).
|
||||
sed -i \
|
||||
-e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \
|
||||
src-tauri/tauri.conf.json || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -x CI=true
|
||||
local -x npm_config_audit=false
|
||||
local -x npm_config_fund=false
|
||||
local -x npm_config_update_notifier=false
|
||||
|
||||
npm install || die "npm install failed"
|
||||
npm run tauri -- build --no-bundle || die "tauri build failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin src-tauri/target/release/emerald-legacy-launcher
|
||||
|
||||
newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png
|
||||
newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png
|
||||
newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png
|
||||
newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png
|
||||
newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png
|
||||
|
||||
domenu "${FILESDIR}"/emerald-legacy-launcher.desktop
|
||||
|
||||
insinto /usr/share/metainfo
|
||||
newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \
|
||||
io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml
|
||||
|
||||
dodoc README.md LICENSE
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Name=LCE Emerald Launcher
|
||||
Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition
|
||||
Exec=emerald-legacy-launcher %u
|
||||
Icon=emerald-legacy-launcher
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871;
|
||||
StartupNotify=true
|
||||
StartupWMClass=emerald-legacy-launcher
|
||||
Terminal=false
|
||||
14
gentoo/games-util/emerald-legacy-launcher/metadata.xml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<upstream>
|
||||
<remote-id type="github">LCE-Hub/LCE-Emerald-Launcher</remote-id>
|
||||
<bugs-to>https://github.com/LCE-Hub/LCE-Emerald-Launcher/issues</bugs-to>
|
||||
</upstream>
|
||||
<longdescription lang="en">
|
||||
LCE Emerald Launcher is a FOSS cross-platform Tauri launcher for
|
||||
Minecraft Legacy Console Edition. It installs community builds,
|
||||
manages versions, skins, and workshop content, and launches the game
|
||||
via Wine/Proton on Linux.
|
||||
</longdescription>
|
||||
</pkgmetadata>
|
||||
3
gentoo/metadata/layout.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
masters = gentoo
|
||||
thin-manifests = true
|
||||
sign-manifests = false
|
||||
1
gentoo/profiles/repo_name
Normal file
|
|
@ -0,0 +1 @@
|
|||
emerald-legacy-launcher
|
||||
|
|
@ -4,6 +4,14 @@
|
|||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<script>
|
||||
if (/Android/i.test(navigator.userAgent)) {
|
||||
document.documentElement.classList.add("is-android");
|
||||
document
|
||||
.querySelector('meta[name="viewport"]')
|
||||
.setAttribute("content", "width=1280");
|
||||
}
|
||||
</script>
|
||||
<link rel="preload" href="/fonts/Mojangles.ttf" as="font" type="font/truetype" crossorigin>
|
||||
<link rel="preload" href="/images/MenuTitle.png" as="image">
|
||||
<title>Emerald Legacy Launcher</title>
|
||||
|
|
|
|||
135
nix/package.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
cargo-tauri,
|
||||
nodejs,
|
||||
pkg-config,
|
||||
pnpm_10,
|
||||
fetchPnpmDeps,
|
||||
pnpmConfigHook,
|
||||
wrapGAppsHook4,
|
||||
openssl,
|
||||
webkitgtk_4_1,
|
||||
glib-networking,
|
||||
libayatana-appindicator,
|
||||
librsvg,
|
||||
udev,
|
||||
version ? "1.5.1",
|
||||
src ? null,
|
||||
}:
|
||||
|
||||
# Disable updater artifact signing — Nix builds have no Tauri signing key.
|
||||
let
|
||||
tauriConfOverride = builtins.toFile "tauri-nix.conf.json" ''
|
||||
{
|
||||
"bundle": {
|
||||
"createUpdaterArtifacts": false
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
defaultSrc = lib.cleanSourceWith {
|
||||
src = ../.;
|
||||
filter =
|
||||
path: _type:
|
||||
let
|
||||
baseName = baseNameOf path;
|
||||
in
|
||||
!(builtins.elem baseName [
|
||||
".git"
|
||||
"node_modules"
|
||||
"target"
|
||||
"dist"
|
||||
"build-flatpak"
|
||||
"emerald-repo"
|
||||
"result"
|
||||
"result-dev"
|
||||
]);
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "emerald-legacy-launcher";
|
||||
inherit version;
|
||||
|
||||
src = if src != null then src else defaultSrc;
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
buildAndTestSubdir = finalAttrs.cargoRoot;
|
||||
|
||||
cargoHash = "sha256-tSbFyle2eQ5Dw9fTXloIepOZU1UxhkF6/KZBRXehm4w=";
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-6na8YlSTkdnSse8DQjBnTBpfmKSYj3+1FLWVyyfUx1g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
nodejs
|
||||
pkg-config
|
||||
pnpmConfigHook
|
||||
pnpm_10
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
glib-networking
|
||||
libayatana-appindicator
|
||||
librsvg
|
||||
udev
|
||||
webkitgtk_4_1
|
||||
];
|
||||
|
||||
tauriBuildFlags = [
|
||||
"-c"
|
||||
tauriConfOverride
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace "$cargoDepsCopy"/*/libappindicator-sys-*/src/lib.rs \
|
||||
--replace-fail "libayatana-appindicator3.so.1" \
|
||||
"${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
|
||||
'';
|
||||
|
||||
# Prefer the project's pnpm frontend build over the npm beforeBuildCommand.
|
||||
preBuild = ''
|
||||
substituteInPlace src-tauri/tauri.conf.json \
|
||||
--replace-fail '"beforeBuildCommand": "npm run build"' \
|
||||
'"beforeBuildCommand": "pnpm run build"'
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath [
|
||||
libayatana-appindicator
|
||||
udev
|
||||
]
|
||||
}
|
||||
)
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
env = {
|
||||
CI = "true";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "FOSS cross-platform launcher for Minecraft Legacy Console Edition";
|
||||
homepage = "https://github.com/LCE-Hub/LCE-Emerald-Launcher";
|
||||
changelog = lib.mkIf (!(lib.hasPrefix "unstable-" version)) (
|
||||
"https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/tag/v${version}"
|
||||
);
|
||||
license = lib.licenses.gpl3Only;
|
||||
mainProgram = "emerald-legacy-launcher";
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
7649
package-lock.json
generated
90
package.json
|
|
@ -1,39 +1,51 @@
|
|||
{
|
||||
"name": "emerald-legacy-launcher",
|
||||
"private": true,
|
||||
"version": "1.0.1",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "tsc && vite build",
|
||||
"preview": "vite preview",
|
||||
"tauri": "tauri",
|
||||
"tauri:build": "tauri build && pnpm run post-build:macos",
|
||||
"post-build:macos": "sh src-tauri/scripts/post-build-macos.sh",
|
||||
"flatpak": "flatpak-builder --user --install-deps-from=flathub --repo=emerald-repo --force-clean build-flatpak flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml && flatpak build-bundle emerald-repo emerald.flatpak io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^2",
|
||||
"@tauri-apps/plugin-opener": "^2",
|
||||
"framer-motion": "^12.36.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/three": "^0.183.1",
|
||||
"@tailwindcss/postcss": "^4.2.1",
|
||||
"@tailwindcss/vite": "^4.2.1",
|
||||
"@tauri-apps/cli": "^2",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"@vitejs/plugin-react": "^4.6.0",
|
||||
"autoprefixer": "^10.4.27",
|
||||
"postcss": "^8.5.8",
|
||||
"tailwindcss": "^4.2.1",
|
||||
"typescript": "~5.8.3",
|
||||
"vite": "^7.0.4",
|
||||
"tauri-plugin-drpc": "^1.0.3",
|
||||
"tauri-plugin-gamepad-api": "^0.0.5"
|
||||
}
|
||||
}
|
||||
{
|
||||
"name": "emerald-legacy-launcher",
|
||||
"private": true,
|
||||
"version": "1.6.1",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "tsc && vite build",
|
||||
"preview": "vite preview",
|
||||
"tauri": "tauri",
|
||||
"tauri:build": "tauri build && pnpm run post-build:macos",
|
||||
"post-build:macos": "bash src-tauri/scripts/post-build-macos.sh",
|
||||
"android:assets": "node scripts/download-android-assets.mjs",
|
||||
"flatpak": "flatpak-builder --user --install-deps-from=flathub --repo=emerald-repo --force-clean build-flatpak flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml && flatpak build-bundle emerald-repo emerald.flatpak io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^2",
|
||||
"@tauri-apps/plugin-deep-link": "~2.4.9",
|
||||
"@tauri-apps/plugin-opener": "^2",
|
||||
"@tauri-apps/plugin-process": "~2.3.1",
|
||||
"@tauri-apps/plugin-updater": "~2.10.1",
|
||||
"framer-motion": "^12.36.0",
|
||||
"pako": "^2.1.0",
|
||||
"qrcode": "^1.5.4",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"rehype-raw": "^7.0.0",
|
||||
"rehype-sanitize": "^6.0.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "^4.2.1",
|
||||
"@tailwindcss/vite": "^4.2.1",
|
||||
"@tauri-apps/cli": "^2",
|
||||
"@types/pako": "^2.0.4",
|
||||
"@types/qrcode": "^1.5.6",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"@types/three": "^0.183.1",
|
||||
"@vitejs/plugin-react": "^4.6.0",
|
||||
"autoprefixer": "^10.4.27",
|
||||
"postcss": "^8.5.8",
|
||||
"tailwindcss": "^4.2.1",
|
||||
"tauri-plugin-drpc": "^1.0.3",
|
||||
"tauri-plugin-gamepad-api": "^0.0.5",
|
||||
"typescript": "~5.8.3",
|
||||
"vite": "^7.0.4"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
48
pkg/AppImage/AppImage.sh
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/sh
|
||||
#neo: credits: https://github.com/cjonas1999/OverBind/blob/master/pkg/AppImage/AppImage.sh
|
||||
set -eu
|
||||
ARCH="$(uname -m)"
|
||||
SHARUN_REPO="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages"
|
||||
_commits_json=$(mktemp)
|
||||
wget -qO "$_commits_json" \
|
||||
"https://api.github.com/repos/pkgforge-dev/Anylinux-AppImages/commits?path=useful-tools/&per_page=100"
|
||||
|
||||
STABLE_SHA=$(node -e "
|
||||
const data = JSON.parse(require('fs').readFileSync('$_commits_json', 'utf8'));
|
||||
const now = Date.now(), h24 = 864e5;
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const t = new Date(data[i].commit.committer.date).getTime();
|
||||
if (now - t < h24) continue;
|
||||
const prev = data[i - 1];
|
||||
if (!prev || new Date(prev.commit.committer.date).getTime() - t >= h24) {
|
||||
process.stdout.write(data[i].sha);
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
process.stderr.write('No settled commit found in last 100 commits\n');
|
||||
process.exit(1);
|
||||
")
|
||||
rm -f "$_commits_json"
|
||||
echo "Pinning sharun scripts to settled commit $STABLE_SHA"
|
||||
SHARUN="$SHARUN_REPO/$STABLE_SHA/useful-tools/quick-sharun.sh"
|
||||
DEBLOATED_PKGS="$SHARUN_REPO/$STABLE_SHA/useful-tools/get-debloated-pkgs.sh"
|
||||
#export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync"
|
||||
export OUTNAME=Emerald-Legacy-Launcher-anylinux-"$ARCH".AppImage
|
||||
export DESKTOP="/usr/share/applications/LCE Emerald Launcher.desktop"
|
||||
export ICON=/usr/share/icons/hicolor/256x256@2/apps/emerald-legacy-launcher.png
|
||||
export DEPLOY_OPENGL=1
|
||||
rm -rf AppDir dist appinfo
|
||||
wget --retry-connrefused --tries=30 "$DEBLOATED_PKGS" -O ./get-debloated-pkgs
|
||||
wget --retry-connrefused --tries=30 "$SHARUN" -O ./quick-sharun
|
||||
chmod +x ./quick-sharun ./get-debloated-pkgs
|
||||
./get-debloated-pkgs --add-common --prefer-nano
|
||||
./quick-sharun \
|
||||
/usr/bin/emerald-legacy-launcher \
|
||||
/usr/lib/libayatana-appindicator*.so*
|
||||
|
||||
mkdir -p "AppDir/usr/lib"
|
||||
cp -r "/usr/lib/LCE Emerald Launcher" "AppDir/usr/lib/"
|
||||
./quick-sharun --make-appimage
|
||||
mkdir -p ./dist
|
||||
mv -v ./*.AppImage* ./dist
|
||||
echo "All Done!"
|
||||
1333
pnpm-lock.yaml
BIN
public/Capes/4J.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
public/Capes/Unused_Cape_2.png
Normal file
|
After Width: | Height: | Size: 730 B |
BIN
public/Skins/700.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
BIN
public/Skins/PrismaChunk0.png
Normal file
|
After Width: | Height: | Size: 893 B |
BIN
public/Skins/amy.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/Skins/andi.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/Skins/ava.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/Skins/byte.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/Skins/counterr.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/Skins/huckle.png
Normal file
|
After Width: | Height: | Size: 899 B |
BIN
public/Skins/kowhaifan.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/Skins/str1k3r.png
Normal file
|
After Width: | Height: | Size: 638 B |
BIN
public/Skins/tranq.png
Normal file
|
After Width: | Height: | Size: 989 B |
BIN
public/fonts/Mojang Font_11.ttf
Normal file
BIN
public/fonts/Mojang Font_7.ttf
Normal file
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 447 B |
BIN
public/images/LCE Team.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/images/MinecraftIcon.png
Normal file
|
After Width: | Height: | Size: 5 KiB |
BIN
public/images/Nitro Boost.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 273 B |
BIN
public/images/Slider_Handle_bottom.png
Normal file
|
After Width: | Height: | Size: 131 B |
|
Before Width: | Height: | Size: 76 KiB |
BIN
public/images/Slider_Handle_mid.png
Normal file
|
After Width: | Height: | Size: 234 B |
BIN
public/images/Slider_Handle_top.png
Normal file
|
After Width: | Height: | Size: 103 B |
|
Before Width: | Height: | Size: 10 KiB |
BIN
public/images/cafeberry_title.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/images/check.png
Normal file
|
After Width: | Height: | Size: 715 B |
BIN
public/images/checkbox.png
Normal file
|
After Width: | Height: | Size: 400 B |
BIN
public/images/checkbox_highlighted.png
Normal file
|
After Width: | Height: | Size: 148 B |
BIN
public/images/emerald_launcher.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
public/images/esrb_warning.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
public/images/friends.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/images/hellishEndsIcon.png
Normal file
|
After Width: | Height: | Size: 937 B |
13
public/images/kofi_symbol.svg
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<svg width="241" height="194" viewBox="0 0 241 194" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_1_219" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="-1" y="0" width="242" height="194">
|
||||
<path d="M240.469 0.958984H-0.00585938V193.918H240.469V0.958984Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_1_219)">
|
||||
<path d="M96.1344 193.911C61.1312 193.911 32.6597 178.256 15.9721 149.829C1.19788 124.912 -0.00585938 97.9229 -0.00585938 67.7662C-0.00585938 49.8876 5.37293 34.3215 15.5413 22.7466C24.8861 12.1157 38.1271 5.22907 52.8317 3.35378C70.2858 1.14271 91.9848 0.958984 114.545 0.958984C151.259 0.958984 161.63 1.4088 176.075 2.85328C195.29 4.76026 211.458 11.932 222.824 23.5955C234.368 35.4428 240.469 51.2624 240.469 69.3627V72.9994C240.469 103.885 219.821 129.733 191.046 136.759C188.898 141.827 186.237 146.871 183.089 151.837L183.006 151.964C172.869 167.632 149.042 193.918 103.401 193.918H96.1281L96.1344 193.911Z" fill="white"/>
|
||||
<path d="M174.568 17.9772C160.927 16.6151 151.38 16.1589 114.552 16.1589C90.908 16.1589 70.9008 16.387 54.7644 18.4334C33.3949 21.164 15.2058 37.5285 15.2058 67.7674C15.2058 98.0066 16.796 121.422 29.0741 142.107C42.9425 165.751 66.1302 178.707 96.1412 178.707H103.414C140.242 178.707 160.25 159.156 170.253 143.698C174.574 136.874 177.754 130.058 179.801 123.234C205.947 120.96 225.27 99.3624 225.27 72.9941V69.3577C225.27 40.9432 206.631 21.164 174.574 17.9772H174.568Z" fill="white"/>
|
||||
<path d="M15.1975 67.7674C15.1975 37.5285 33.3866 21.164 54.7559 18.4334C70.8987 16.387 90.906 16.1589 114.544 16.1589C151.372 16.1589 160.919 16.6151 174.559 17.9772C206.617 21.1576 225.255 40.937 225.255 69.3577V72.9941C225.255 99.3687 205.932 120.966 179.786 123.234C177.74 130.058 174.559 136.874 170.238 143.698C160.235 159.156 140.228 178.707 103.4 178.707H96.1264C66.1155 178.707 42.9277 165.751 29.0595 142.107C16.7814 121.422 15.1912 98.4563 15.1912 67.7674" fill="#202020"/>
|
||||
<path d="M32.2469 67.9899C32.2469 97.3168 34.0654 116.184 43.6127 133.689C54.5225 153.924 74.3018 161.653 96.8117 161.653H103.857C133.411 161.653 147.736 147.329 155.693 134.829C159.558 128.462 162.966 121.417 164.784 112.547L166.147 106.864H174.332C192.521 106.864 208.208 92.09 208.208 73.2166V69.8082C208.208 48.6669 195.024 37.5228 172.058 34.7987C159.102 33.6646 151.372 33.2084 114.538 33.2084C89.7602 33.2084 72.0272 33.4364 58.6152 35.4828C39.7483 38.2134 32.2407 48.8951 32.2407 67.9899" fill="white"/>
|
||||
<path d="M166.158 83.6801C166.158 86.4107 168.204 88.4572 171.841 88.4572C183.435 88.4572 189.802 81.8619 189.802 70.9523C189.802 60.0427 183.435 53.2195 171.841 53.2195C168.204 53.2195 166.158 55.2657 166.158 57.9963V83.6866V83.6801Z" fill="#202020"/>
|
||||
<path d="M54.5321 82.3198C54.5321 95.732 62.0332 107.326 71.5807 116.424C77.9478 122.562 87.9515 128.93 94.7685 133.022C96.8147 134.157 98.8611 134.841 101.136 134.841C103.866 134.841 106.134 134.157 107.959 133.022C114.782 128.93 124.779 122.562 130.919 116.424C140.694 107.332 148.195 95.7383 148.195 82.3198C148.195 67.7673 137.286 54.8115 121.599 54.8115C112.28 54.8115 105.912 59.5882 101.136 66.1772C96.8147 59.582 90.2259 54.8115 80.9001 54.8115C64.9855 54.8115 54.5256 67.7673 54.5256 82.3198" fill="#FF5A16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/images/lce_online.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/images/lceonline.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
BIN
public/images/lock_icon.png
Normal file
|
After Width: | Height: | Size: 225 B |
BIN
public/images/lostlegacy.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
public/images/lostlegacy_title.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
public/images/minecraft_title_hellishends.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
public/images/minecraft_title_moon.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 143 KiB |
BIN
public/images/moonEdition.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 26 KiB |
BIN
public/images/options_background.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
public/images/panel_content.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
public/images/revelations.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/images/slider.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/images/slider_highlighted.png
Normal file
|
After Width: | Height: | Size: 744 B |
BIN
public/images/steam.png
Normal file
|
After Width: | Height: | Size: 3 KiB |
BIN
public/images/tools/col.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
public/images/tools/grf.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
public/images/tools/guides.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
public/images/tools/model.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 63 KiB |
BIN
public/music/Moog City 2.opus
Normal file
BIN
public/panorama/hellishends_Panorama_Background_Day.png
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
public/panorama/hellishends_Panorama_Background_Night.png
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
public/panorama/moonedition_Panorama_Background_Day.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/panorama/moonedition_Panorama_Background_Night.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 90 KiB |