diff --git a/src/App.vue b/src/App.vue index 69020a92..a3732ef2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -23,7 +23,7 @@ import { computed, onBeforeMount, onMounted } from 'vue'; import { addGameLogEvent, getGameLogTable } from './coordinators/gameLogCoordinator'; - import { runCheckVRChatDebugLoggingFlow, runUpdateIsGameRunningFlow } from './coordinators/gameCoordinator'; + import { runCheckVRChatDebugLoggingFlow, runUpdateIsGameRunningFlow, runUpdateIsHmdAfkFlow } from './coordinators/gameCoordinator'; import { Toaster } from './components/ui/sonner'; import { TooltipProvider } from './components/ui/tooltip'; import { createGlobalStores } from './stores'; @@ -53,6 +53,7 @@ window.$pinia = store; // Bridge: attach coordinator functions to store for C# IPC callbacks store.game.updateIsGameRunning = runUpdateIsGameRunningFlow; + store.game.updateIsHmdAfk = runUpdateIsHmdAfkFlow; store.gameLog.addGameLogEvent = addGameLogEvent; } diff --git a/src/coordinators/gameCoordinator.js b/src/coordinators/gameCoordinator.js index d626d71d..be21e7d2 100644 --- a/src/coordinators/gameCoordinator.js +++ b/src/coordinators/gameCoordinator.js @@ -97,6 +97,19 @@ export async function runUpdateIsGameRunningFlow( vrStore.updateOpenVR(); } +/** + * Orchestrates the HMD AFK state update from IPC. + * @param {boolean} isHmdAfkArg HMD AFK flag from VR polling. + */ +export function runUpdateIsHmdAfkFlow(isHmdAfkArg) { + const gameStore = useGameStore(); + + if (isHmdAfkArg !== gameStore.isHmdAfk) { + gameStore.setIsHmdAfk(isHmdAfkArg); + console.log('isHmdAfk', isHmdAfkArg); + } +} + /** * Runs auto cache management if enabled. */