diff --git a/Justfile b/Justfile index 704b093..eac895c 100644 --- a/Justfile +++ b/Justfile @@ -36,7 +36,8 @@ samply: # Build the project for Emscripten web *args: - bun run pacman/web.build.ts {{args}}; + bun run pacman/web.build.ts {{args}} + bun run --cwd web build caddy file-server --root web/dist/client # Fix linting errors & formatting diff --git a/pacman/src/game.rs b/pacman/src/game.rs index d78aa43..cfcf0ca 100644 --- a/pacman/src/game.rs +++ b/pacman/src/game.rs @@ -521,7 +521,7 @@ impl Game { stage_system.in_set(GameplaySet::Respond), ( (|mut dirty: ResMut, score: Res, stage: Res| { - dirty.0 = score.is_changed() || stage.is_changed(); + dirty.0 |= score.is_changed() || stage.is_changed(); }), dirty_render_system.run_if(|dirty: Res| dirty.0.not()), combined_render_system, diff --git a/web/pages/index/+Layout.tsx b/web/pages/index/+Layout.tsx new file mode 100644 index 0000000..06b253d --- /dev/null +++ b/web/pages/index/+Layout.tsx @@ -0,0 +1,9 @@ +import "../../layouts/tailwind.css"; + +export default function GameLayout({ children }: { children: React.ReactNode }) { + return ( +
+
{children}
+
+ ); +} diff --git a/web/pages/index/+Page.tsx b/web/pages/index/+Page.tsx index 3aec5be..c262fd9 100644 --- a/web/pages/index/+Page.tsx +++ b/web/pages/index/+Page.tsx @@ -2,32 +2,27 @@ import { useEffect } from "react"; export default function Page() { useEffect(() => { - // Only setup Module if not already configured (prevents double-initialization on hot reload) if (!(window as any).Module) { const canvas = document.getElementById("canvas"); - // Simple Module configuration matching the original working approach (window as any).Module = { canvas: canvas, locateFile: (path: string) => { - // Return absolute paths for all resources return path.startsWith("/") ? path : `/${path}`; }, preRun: [], }; - // Load the Emscripten script const script = document.createElement("script"); script.src = "/pacman.js"; - script.async = false; // Load synchronously to ensure Module is configured first + script.async = false; document.body.appendChild(script); - // Cleanup function (runs when component unmounts) return () => { script.remove(); }; } - }, []); // Empty dependency array = run once on mount + }, []); return (