From 44714b552f1ba62649dea90a25861b42ae24d468 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 13 Feb 2026 17:25:34 -0800 Subject: [PATCH] Update README with save editor setup, project structure, and Three.js --- README.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 22bf53f..d1c56a9 100644 --- a/README.md +++ b/README.md @@ -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