update: enable hand tracking for repair steps (not only when we are close to something)

This commit is contained in:
Tom Boullay
2026-05-08 01:30:27 +01:00
parent ed60114d06
commit f5da2f4994
3 changed files with 42 additions and 9 deletions
@@ -8,6 +8,14 @@ import {
} from "@/hooks/handTracking/useHandTrackingSnapshot";
import { useBrowserHandTracking } from "@/hooks/handTracking/useBrowserHandTracking";
import { useRemoteHandTracking } from "@/hooks/handTracking/useRemoteHandTracking";
import { useGameStore } from "@/managers/stores/useGameStore";
import type { MissionStep } from "@/managers/stores/useGameStore";
const REPAIR_HAND_TRACKING_STEPS = new Set<MissionStep>([
"inspected",
"repairing",
"done",
]);
export function HandTrackingProvider({
children,
@@ -18,8 +26,23 @@ export function HandTrackingProvider({
const handTrackingSource = useDebugStore((debug) =>
debug.getHandTrackingSource(),
);
const repairNeedsHands = useGameStore((state) => {
switch (state.mainState) {
case "bike":
return REPAIR_HAND_TRACKING_STEPS.has(state.bike.currentStep);
case "pylone":
return REPAIR_HAND_TRACKING_STEPS.has(state.pylone.currentStep);
case "ferme":
return REPAIR_HAND_TRACKING_STEPS.has(state.ferme.currentStep);
case "intro":
case "outro":
return false;
}
});
const { nearby, holding, handHolding } = useInteraction();
const enabled = sceneMode === "physics" && (nearby || holding || handHolding);
const enabled =
repairNeedsHands ||
(sceneMode === "physics" && (nearby || holding || handHolding));
const backendSnapshot = useRemoteHandTracking({
enabled: enabled && handTrackingSource === "backend",
});