Update README with save editor setup, project structure, and Three.js

This commit is contained in:
Christian Semmler 2026-02-13 17:25:34 -08:00
parent 743ed67028
commit 44714b552f

View File

@ -32,18 +32,25 @@ A custom web frontend for the Emscripten port of [isle-portable](https://github.
npm run prepare:assets -- -p /path/to/your/LEGO
```
5. Start the development server:
5. Generate the save editor asset bundle (requires game assets from step 4):
```bash
npm run generate:save-editor-assets
```
This extracts animations, sounds, textures, and character icons from the game files into `save-editor.bin`, used by the save editor's 3D previews.
6. Start the development server:
```bash
npm run dev
```
6. Open the URL shown in the terminal (usually `http://localhost:5173`).
7. Open the URL shown in the terminal (usually `http://localhost:5173`).
## Scripts
| Command | Description |
|---------|-------------|
| `npm run prepare:assets` | Set up LEGO Island game assets via symlinks |
| `npm run generate:save-editor-assets` | Extract save editor assets (animations, sounds, textures, icons) into `save-editor.bin` |
| `npm run dev` | Start development server with hot reload |
| `npm run build` | Build for production (outputs to `dist/`) |
| `npm run preview` | Preview the production build locally |
@ -56,14 +63,20 @@ isle.pizza/
│ ├── App.svelte # Main application component
│ ├── app.css # Global styles
│ ├── stores.js # Svelte stores for state management
│ ├── core/ # Core modules (audio, OPFS, service worker, etc.)
│ └── lib/ # UI components
├── public/ # Static assets (images, fonts, PDFs)
├── scripts/ # Build scripts
│ ├── core/
│ │ ├── formats/ # Binary file parsers/serializers (WDB, save games, animations, textures)
│ │ ├── rendering/ # Three.js renderers (BaseRenderer, VehiclePartRenderer, ActorRenderer, etc.)
│ │ ├── savegame/ # Save game constants, actor data, color tables
│ │ └── ... # Audio, OPFS, service worker, asset loading
│ └── lib/ # UI components and pages (save editor, configure, etc.)
├── public/
│ └── images/ # UI images (menu buttons, tab icons)
├── scripts/ # Build and asset generation scripts
├── src-sw/ # Service worker source
├── index.html # HTML entry point
├── isle.js # Emscripten JS (not in repo, build from isle-portable)
├── isle.wasm # Emscripten WASM (not in repo, build from isle-portable)
├── save-editor.bin # Packed save editor assets: animations, sounds, textures, icons (not in repo, generated)
└── LEGO/ # Game data directory (not in repo)
```
@ -79,6 +92,7 @@ Alternatively, a [Docker image that bundles the runtime with this frontend](http
## Tech Stack
- [Svelte 5](https://svelte.dev/) - UI framework
- [Three.js](https://threejs.org/) - 3D rendering for save editor previews
- [Vite](https://vitejs.dev/) - Build tool and dev server
- [Workbox](https://developer.chrome.com/docs/workbox/) - Service worker and offline support