From 2de9f99a81ccb8695d948217a8a788c1fb89a0c7 Mon Sep 17 00:00:00 2001 From: cocos02 Date: Sun, 7 Jun 2026 17:27:52 +0800 Subject: [PATCH] feat: add StateManager.dump() and expose window.__sm for debugging - StateManager.dump(): console.table formatted dump of variables, flags, history - window.__sm: exposes engine.stateManager in dev mode for console inspection --- engine/core/StateManager.ts | 8 ++++++++ src/composables/useGameEngine.ts | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/engine/core/StateManager.ts b/engine/core/StateManager.ts index 43c5713..3d622bb 100644 --- a/engine/core/StateManager.ts +++ b/engine/core/StateManager.ts @@ -91,4 +91,12 @@ export class StateManager { this.flags = new Set(data.flags) this.history = [...data.history] } + + dump() { + console.group('StateManager') + console.table(this.variables) + console.log('flags:', [...this.flags]) + console.table(this.history) + console.groupEnd() + } } diff --git a/src/composables/useGameEngine.ts b/src/composables/useGameEngine.ts index f361b4c..c31f82e 100644 --- a/src/composables/useGameEngine.ts +++ b/src/composables/useGameEngine.ts @@ -9,6 +9,10 @@ export function useGameEngine(videoEls: () => [HTMLVideoElement | null, HTMLVide const saveSystem = new SaveSystem() const store = useGameStore() + if (import.meta.env.DEV) { + ;(window as any).__sm = engine.stateManager + } + async function loadGame(dataUrl: string) { const resp = await fetch(dataUrl) const data: GameData = await resp.json()