Compare commits

..

No commits in common. "main" and "nightly" have entirely different histories.

296 changed files with 7757 additions and 45258 deletions

View file

@ -1,246 +0,0 @@
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 Normal file
View file

@ -0,0 +1,112 @@
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 }}

View file

@ -1,42 +0,0 @@
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

View file

@ -1,4 +1,5 @@
name: "publish" name: 'publish'
on: on:
workflow_dispatch: workflow_dispatch:
@ -7,32 +8,26 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
version: ${{ steps.version.outputs.version }} version: ${{ steps.version.outputs.version }}
body: ${{ steps.version.outputs.body }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- id: version - id: version
run: | run: echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
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: publish-tauri:
needs: get-version
permissions: permissions:
contents: write contents: write
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- platform: "macos-latest" - platform: 'macos-latest'
args: "--target aarch64-apple-darwin" args: '--target aarch64-apple-darwin'
- platform: "macos-latest" - platform: 'macos-latest'
args: "--target x86_64-apple-darwin" args: '--target x86_64-apple-darwin'
- platform: "ubuntu-22.04" - platform: 'ubuntu-22.04'
args: "" args: ''
- platform: "windows-latest" - platform: 'windows-latest'
args: "" args: ''
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
steps: steps:
@ -52,7 +47,7 @@ jobs:
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: "pnpm" cache: 'pnpm'
- name: install Rust stable - name: install Rust stable
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
@ -62,164 +57,69 @@ jobs:
- name: Rust cache - name: Rust cache
uses: swatinem/rust-cache@v2 uses: swatinem/rust-cache@v2
with: with:
workspaces: "./src-tauri -> target" workspaces: './src-tauri -> target'
- name: install frontend dependencies - name: install frontend dependencies
run: pnpm install 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 - uses: tauri-apps/tauri-action@v0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 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: with:
tagName: v__VERSION__ tagName: v__VERSION__
releaseName: "Emerald v__VERSION__" releaseName: 'Emerald v__VERSION__'
releaseBody: ${{ needs.get-version.outputs.body }} releaseBody: |
releaseDraft: true # 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
prerelease: false prerelease: false
uploadUpdaterJson: true
args: ${{ matrix.args }} 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: publish-flatpak:
needs: [get-version, build-appimage, build-android] needs: get-version
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
@ -230,29 +130,16 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
- name: sleep for 20 seconds - name: sleep for 10 seconds
run: sleep 20 run: sleep 10
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with: with:
bundle: emerald.flatpak bundle: Emerald.Legacy.Launcher.flatpak
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
cache-key: flatpak-builder-${{ github.sha }} 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 - uses: softprops/action-gh-release@v2
with: with:
body: ${{ needs.get-version.outputs.body }}
tag_name: v${{ needs.get-version.outputs.version }} tag_name: v${{ needs.get-version.outputs.version }}
files: | files: Emerald.Legacy.Launcher.flatpak
emerald.flatpak
appimage/*.AppImage*
android/*.apk
draft: true
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,47 +0,0 @@
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)

View file

@ -1,41 +0,0 @@
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
)

10
.gitignore vendored
View file

@ -1,6 +1,5 @@
# Rust # Rust
/src-tauri/target/ /src-tauri/target/
/src-tauri/tests
# Node # Node
/node_modules/ /node_modules/
@ -24,10 +23,6 @@
.DS_Store .DS_Store
Thumbs.db Thumbs.db
# Nix
/result
/result-*
# Log files # Log files
*.log *.log
@ -36,8 +31,3 @@ Thumbs.db
/*.flatpak /*.flatpak
/emerald-repo /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
View file

@ -1,6 +1,3 @@
[submodule "flatpak/shared-modules"] [submodule "flatpak/shared-modules"]
path = flatpak/shared-modules path = flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git url = https://github.com/flathub/shared-modules.git
[submodule "DiamondRuntime"]
path = DiamondRuntime
url = https://github.com/LCE-Hub/DiamondRuntime.git

View file

@ -33,16 +33,3 @@ codesign --force --deep --sign - "/path/to/Emerald\ Legacy\ Launcher.app"
```sh ```sh
pnpm flatpak # or npm 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
```

View file

@ -1,18 +0,0 @@
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 +0,0 @@
Subproject commit c3f56e880c4c59fe591fa2bf863ea6f247886749

View file

@ -1,19 +0,0 @@
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
View file

@ -1,11 +1,12 @@
<div align="center"> <div align="center">
<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"> <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">
<h1>LCE Emerald Launcher</h1> <h1>LCE Emerald Launcher</h1>
<p><strong>FOSS cross-platform launcher for Minecraft Legacy Console Edition</strong></p> <p><strong>FOSS cross-platform launcher for Minecraft Legacy Console Edition</strong></p>
<p> <p>
<img src="https://img.shields.io/badge/version-1.6.1-blue?style=flat-square" alt="Version"> <img src="https://img.shields.io/badge/version-1.0.0-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/license-GPL--3.0-green?style=flat-square" alt="License">
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20GNU/Linux-lightgrey?style=flat-square" alt="Platforms"> <img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey?style=flat-square" alt="Platforms">
</p> </p>
</div> </div>
@ -13,20 +14,16 @@
<a href="https://ko-fi.com/kayjann"> <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"> <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>
<a href="https://discord.gg/cQVKhQXcCx"> <a href="https://discord.gg/vD8akRU24f">
<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"> <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> </a>
</p> </p>
--- ---
| Main Screen | Versions Menu | Workshop | > [!IMPORTANT]
|-------------|---------------|----------| > **macOS support for LCE Emerald Launcher is currently in Beta.**
| <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" /> | > Expect minor bugs, frequent updates, and features that are still being polished as we work toward a stable release.
<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>
--- ---
@ -34,12 +31,15 @@
- [Overview](#overview) - [Overview](#overview)
- [Features](#features) - [Features](#features)
- [Screenshots](#screenshots)
- [Installation](#installation) - [Installation](#installation)
- [Windows](#windows) - [Windows](#windows)
- [macOS](#macos) - [macOS](#macos)
- [GNU/Linux](#gnulinux) - [Linux](#linux)
- [Game Versions & Partnerships](#game-versions--partnerships)
- [Building from Source](#building-from-source) - [Building from Source](#building-from-source)
- [Troubleshooting](#troubleshooting) - [Troubleshooting](#troubleshooting)
- [Roadmap](#roadmap)
- [Acknowledgments](#acknowledgments) - [Acknowledgments](#acknowledgments)
- [License](#license) - [License](#license)
@ -47,29 +47,63 @@
## Overview ## Overview
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. 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.
**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. **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.
--- ---
## Features ## Features
### Core Features
| Feature | Description | | Feature | Description |
|---------|-------------| |---------|-------------|
| **Automated Setup** | One-click installation for neoLegacy, Revelations, 360 Revived, Hellish Ends and others | | **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 (Steam Deck is also supported!) | | **Cross-Platform** | Native support for Windows, macOS (Intel & Apple Silicon), and Linux |
| **Lightweight** | Very light RAM usage thanks to Rust backend and Tauri framework | | **Lightweight** | Very light RAM usage thanks to Rust backend and Tauri framework |
| **Easy Configuration** | Built-in settings for username, game parameters, and profiles | | **Easy Configuration** | Built-in settings for username, game parameters, and profiles |
| **Skin Viewer** | Interactive skin preview using Three.js with layer support |
| **Custom Skins** | Import and manage your own skins and capes | ### Advanced Features
| **Controller Support** | Full gamepad navigation support (keyboard support included) |
| 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) |
| **Discord Rich Presence** | Show your current activity and game status on Discord | | **Discord Rich Presence** | Show your current activity and game status on Discord |
| **Workshop** | Community content like DLCs, Textures, Skins and more | | **Workshop and modloader** | *(Coming Soon)* Community content and mod browser |
| **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! | ## 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" />
--- ---
@ -77,10 +111,12 @@ LCE Emerald Launcher is the easiest way to play Minecraft Legacy Console Edition
### Windows ### Windows
Download the latest release from [GitHub Releases](https://github.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher/releases):
| Format | Best For | | Format | Best For |
|--------|----------| |--------|----------|
| `.exe` (NSIS) | Standard installation with uninstaller | | `.exe` (NSIS) | Standard installation with uninstaller |
| `.msi` | A fallback option in case the `.exe` does not work | | `.msi` | Enterprise/IT deployment |
**⚠️ Windows SmartScreen Warning:** **⚠️ Windows SmartScreen Warning:**
> Since the launcher is unsigned, Windows may show a "Windows protected your PC" warning. To proceed: > Since the launcher is unsigned, Windows may show a "Windows protected your PC" warning. To proceed:
@ -92,8 +128,7 @@ LCE Emerald Launcher is the easiest way to play Minecraft Legacy Console Edition
| Format | Architecture | | Format | Architecture |
|--------|-------------| |--------|-------------|
| `.dmg` (x64) | Intel Macs | | `.dmg` (x64) | Intel Macs |
| `.dmg` (aarch64) | Apple Silicon (M-series and A-series) | | `.dmg` (aarch64) | Apple Silicon (M1/M2/M3) |
| Homebrew Cask | Intel & Apple Silicon (via tap) |
**Installation Steps:** **Installation Steps:**
1. Download the appropriate DMG for your Mac 1. Download the appropriate DMG for your Mac
@ -102,16 +137,7 @@ LCE Emerald Launcher is the easiest way to play Minecraft Legacy Console Edition
- Right-click the app → **Open** → confirm **Open** - Right-click the app → **Open** → confirm **Open**
- Or run: `xattr -cr "/Applications/Emerald Legacy Launcher.app"` - Or run: `xattr -cr "/Applications/Emerald Legacy Launcher.app"`
**Homebrew:** ### Linux
```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: Multiple distribution formats available:
@ -120,67 +146,13 @@ Multiple distribution formats available:
| `.deb` | Debian, Ubuntu, Linux Mint | | `.deb` | Debian, Ubuntu, Linux Mint |
| `.rpm` | RHEL, Fedora, openSUSE | | `.rpm` | RHEL, Fedora, openSUSE |
| `.AppImage` | Universal (no installation required) | | `.AppImage` | Universal (no installation required) |
| `.flatpak` | Universal with sandboxing (recommended over AppImage) | | `Flatpak` | Universal with sandboxing |
| 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:** **Flatpak Installation:**
```bash ```bash
flatpak install emerald.flatpak 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):** **Dependencies (if building from source):**
```bash ```bash
# Ubuntu/Debian # Ubuntu/Debian
@ -194,7 +166,37 @@ sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel p
## Building from Source ## Building from Source
Refer to [BUILDING.md](BUILDING.md). ### 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
```
--- ---
@ -228,20 +230,36 @@ sudo apt install --reinstall libwebkit2gtk-4.1-0
### Controller Not Detected ### Controller Not Detected
- Connect controller before launching the launcher - Connect controller before launching the launcher
- PlayStation controllers are not supported in-game but work in launcher. Use Steam Input. - 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).
--- ---
## Acknowledgments ## Acknowledgments
- **The Emerald Team** - Technical development and maintenance *Proudly developed by a passionate team from the LCE community.*
- **4J Studios & Mojang** - Original creators of Legacy Console Edition
- **The LCE Community** - Research and foundations for LCE on PC - **The Emerald Team** — Technical development and maintenance
- **Str1k3r** - Original creator of LCEOnline - **4J Studios & Mojang** — Original creators of Legacy Console Edition
- **DTention** - Original creator of [LCE-Save-Converter](https://github.com/dtentiion/LCE-Save-Converter) - **The LCE Community** — Research and foundations for LCE on PC
- **Tauri & Rust Communities** — Core technologies and ecosystem
--- ---
## License ## License
This project is licensed under the **[GNU GPL v3 License](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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

View file

@ -1,25 +0,0 @@
![Release Artwork](https://raw.githubusercontent.com/LCE-Hub/LCE-Emerald-Launcher/refs/heads/main/RELEASE_ARTWORK.png)
- 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!

View file

@ -1,27 +0,0 @@
{
"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
View file

@ -1,107 +0,0 @@
{
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);
};
}

View file

@ -1,9 +1,7 @@
[Desktop Entry] [Desktop Entry]
Name=Emerald Legacy Launcher Name=Emerald Legacy Launcher
Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition
Exec=emerald-legacy-launcher %u Exec=emerald-legacy-launcher
Icon=io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher Icon=io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher
Type=Application Type=Application
Categories=Game; Categories=Game;
MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871;
StartupNotify=true

View file

@ -12,7 +12,7 @@
<url type="homepage">https://github.com</url> <url type="homepage">https://github.com</url>
<developer_name>Emerald Team</developer_name> <developer_name>Emerald Team</developer_name>
<releases> <releases>
<release version="1.6.0" date="2026-03-19"> <release version="1.0.0" date="2026-03-19">
<description> <description>
<p>Latest stable release of the Emerald Legacy Launcher.</p> <p>Latest stable release of the Emerald Legacy Launcher.</p>
</description> </description>

View file

@ -8,7 +8,6 @@ sdk-extensions:
command: emerald-legacy-launcher command: emerald-legacy-launcher
finish-args: finish-args:
- --share=network - --share=network
- --share=ipc
- --device=input - --device=input
- --socket=x11 - --socket=x11
- --socket=wayland - --socket=wayland
@ -16,9 +15,6 @@ finish-args:
- --filesystem=xdg-data - --filesystem=xdg-data
- --socket=pulseaudio - --socket=pulseaudio
- --filesystem=xdg-run/pipewire-0 - --filesystem=xdg-run/pipewire-0
- --socket=session-bus
- --talk-name=org.freedesktop.portal.Desktop
- --talk-name=org.freedesktop.portal.OpenURI
modules: modules:
- shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json - shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json

View file

@ -1 +0,0 @@
DIST emerald-legacy-launcher-1.5.1.tar.gz 18500442 BLAKE2B 365d9dd36ee6fddb90625719b599c8fc492eba4ce0fb8926c953f2a7d7f4987bf77d91de6a140a489534ba61e8a71bf9e65d8e015a35af31bccb84ca3a023178 SHA512 c713ef81e56d55d7135fa4228f875822a3eee38ace86d8d28a59a8b4afeff28844bf698e9902eb66075b425a0fb71ae72969ae1fe99ce185a005b5f42a4dccc8

View file

@ -1,79 +0,0 @@
# 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
}

View file

@ -1,79 +0,0 @@
# 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
}

View file

@ -1,11 +0,0 @@
[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

View file

@ -1,14 +0,0 @@
<?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>

View file

@ -1,3 +0,0 @@
masters = gentoo
thin-manifests = true
sign-manifests = false

View file

@ -1 +0,0 @@
emerald-legacy-launcher

View file

@ -4,14 +4,6 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <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="/fonts/Mojangles.ttf" as="font" type="font/truetype" crossorigin>
<link rel="preload" href="/images/MenuTitle.png" as="image"> <link rel="preload" href="/images/MenuTitle.png" as="image">
<title>Emerald Legacy Launcher</title> <title>Emerald Legacy Launcher</title>

View file

@ -1,135 +0,0 @@
{
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 = [ ];
};
})

1845
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
{ {
"name": "emerald-legacy-launcher", "name": "emerald-legacy-launcher",
"private": true, "private": true,
"version": "1.6.1", "version": "1.0.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
@ -9,43 +9,31 @@
"preview": "vite preview", "preview": "vite preview",
"tauri": "tauri", "tauri": "tauri",
"tauri:build": "tauri build && pnpm run post-build:macos", "tauri:build": "tauri build && pnpm run post-build:macos",
"post-build:macos": "bash src-tauri/scripts/post-build-macos.sh", "post-build:macos": "sh 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" "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": { "dependencies": {
"@tauri-apps/api": "^2", "@tauri-apps/api": "^2",
"@tauri-apps/plugin-deep-link": "~2.4.9",
"@tauri-apps/plugin-opener": "^2", "@tauri-apps/plugin-opener": "^2",
"@tauri-apps/plugin-process": "~2.3.1",
"@tauri-apps/plugin-updater": "~2.10.1",
"framer-motion": "^12.36.0", "framer-motion": "^12.36.0",
"pako": "^2.1.0",
"qrcode": "^1.5.4",
"react": "^19.1.0", "react": "^19.1.0",
"react-dom": "^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" "three": "^0.183.2"
}, },
"devDependencies": { "devDependencies": {
"@types/three": "^0.183.1",
"@tailwindcss/postcss": "^4.2.1", "@tailwindcss/postcss": "^4.2.1",
"@tailwindcss/vite": "^4.2.1", "@tailwindcss/vite": "^4.2.1",
"@tauri-apps/cli": "^2", "@tauri-apps/cli": "^2",
"@types/pako": "^2.0.4",
"@types/qrcode": "^1.5.6",
"@types/react": "^19.1.8", "@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6", "@types/react-dom": "^19.1.6",
"@types/three": "^0.183.1",
"@vitejs/plugin-react": "^4.6.0", "@vitejs/plugin-react": "^4.6.0",
"autoprefixer": "^10.4.27", "autoprefixer": "^10.4.27",
"postcss": "^8.5.8", "postcss": "^8.5.8",
"tailwindcss": "^4.2.1", "tailwindcss": "^4.2.1",
"tauri-plugin-drpc": "^1.0.3",
"tauri-plugin-gamepad-api": "^0.0.5",
"typescript": "~5.8.3", "typescript": "~5.8.3",
"vite": "^7.0.4" "vite": "^7.0.4",
"tauri-plugin-drpc": "^1.0.3",
"tauri-plugin-gamepad-api": "^0.0.5"
} }
} }

View file

@ -1,48 +0,0 @@
#!/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!"

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

BIN
public/Skins/Journ3ym3n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 B

View file

@ -1,13 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

BIN
public/images/lmrp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

BIN
public/images/wool_14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
public/images/wool_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
public/images/wool_8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Some files were not shown because too many files have changed in this diff Show more