Skip to content

Commit 5ce1b1e

Browse files
authored
Merge pull request #10 from isledecomp/svelte
Migrate frontend to Svelte 5
2 parents 4a55a47 + 1703e0e commit 5ce1b1e

File tree

93 files changed

+10831
-2945
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+10831
-2945
lines changed

.github/workflows/build.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Setup Node.js
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: '20'
20+
cache: 'npm'
21+
22+
- name: Install dependencies
23+
run: npm ci
24+
25+
- name: Check for warnings
26+
run: npm run check
27+
28+
- name: Build
29+
run: npm run build:ci

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
node_modules
2+
dist
13
isle.wasm
24
isle.wasm.map
35
isle.js

README.md

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,77 @@
1-
# [isle.pizza](https://isle.pizza) frontend
1+
# [isle.pizza](https://isle.pizza) Frontend
22

3-
This is a custom frontend for the Emscripten port of [isle-portable](https://github.com/isledecomp/isle-portable). To use this, build the Emscripten version of the game and couple `isle.js` as well as `isle.wasm` with the files in this repository, and open `index.html`.
3+
A custom web frontend for the Emscripten port of [isle-portable](https://github.com/isledecomp/isle-portable), allowing LEGO Island to run directly in modern web browsers.
44

5-
[A Docker image that bundles the runtime with this frontend is also available](https://github.com/isledecomp/isle-portable/wiki/Installation#web-port-emscripten).
5+
<img width="1209" height="792" alt="image" src="https://github.com/user-attachments/assets/b98f8fef-8f30-49be-b424-99c27ea552f3" />
6+
7+
## Requirements
8+
9+
- [Node.js](https://nodejs.org/)
10+
11+
## Quick Start
12+
13+
1. Clone the repository:
14+
```bash
15+
git clone https://github.com/isledecomp/isle.pizza.git
16+
cd isle.pizza
17+
```
18+
19+
2. Install dependencies:
20+
```bash
21+
npm install
22+
```
23+
24+
3. Obtain the game files (`isle.js` and `isle.wasm`) by building the Emscripten version of [isle-portable](https://github.com/isledecomp/isle-portable), then copy them to the project root.
25+
26+
4. Start the development server:
27+
```bash
28+
npm run dev
29+
```
30+
31+
5. Open the URL shown in the terminal (usually `http://localhost:5173`).
32+
33+
## Scripts
34+
35+
| Command | Description |
36+
|---------|-------------|
37+
| `npm run dev` | Start development server with hot reload |
38+
| `npm run build` | Build for production (outputs to `dist/`) |
39+
| `npm run preview` | Preview the production build locally |
40+
41+
## Project Structure
42+
43+
```
44+
isle.pizza/
45+
├── src/
46+
│ ├── App.svelte # Main application component
47+
│ ├── app.css # Global styles
48+
│ ├── stores.js # Svelte stores for state management
49+
│ ├── core/ # Core modules (audio, OPFS, service worker, etc.)
50+
│ └── lib/ # UI components
51+
├── public/ # Static assets (images, fonts, PDFs)
52+
├── scripts/ # Build scripts
53+
├── src-sw/ # Service worker source
54+
├── index.html # HTML entry point
55+
├── isle.js # Emscripten JS (not in repo, build from isle-portable)
56+
├── isle.wasm # Emscripten WASM (not in repo, build from isle-portable)
57+
└── LEGO/ # Game data directory (not in repo)
58+
```
59+
60+
## Building the Game Files
61+
62+
The `isle.js` and `isle.wasm` files are not included in this repository. To obtain them:
63+
64+
1. Follow the [isle-portable build instructions](https://github.com/isledecomp/isle-portable#building) for the Emscripten target
65+
2. Copy the resulting `isle.js` and `isle.wasm` to this project's root directory
66+
67+
Alternatively, a [Docker image that bundles the runtime with this frontend](https://github.com/isledecomp/isle-portable/wiki/Installation#web-port-emscripten) is available.
68+
69+
## Tech Stack
70+
71+
- [Svelte 5](https://svelte.dev/) - UI framework
72+
- [Vite](https://vitejs.dev/) - Build tool and dev server
73+
- [Workbox](https://developer.chrome.com/docs/workbox/) - Service worker and offline support
74+
75+
## License
76+
77+
See [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)