import {useComputed} from '@preact/signals'; import { createGameHost, type GameModule } from 'boardgame-core'; import Phaser from 'phaser'; import { h } from 'preact'; import { PhaserGame, PhaserScene } from 'boardgame-phaser'; export default function App>(props: { gameModule: GameModule, gameScene: { new(): Phaser.Scene } }) { const gameHost = useComputed(() => { const gameHost = createGameHost(props.gameModule); return { gameHost }; }); const scene = useComputed(() => new props.gameScene()); const handleReset = async () => { gameHost.value.gameHost.setup('setup').then(result => { if(!result.success) { console.error(result.error); }else{ console.log('Game finished!', result.result); } }); }; const label = useComputed(() => gameHost.value.gameHost.status.value === 'running' ? 'Restart' : 'Start'); return (
); }