update: show repair movement lock indicator

This commit is contained in:
Tom Boullay
2026-05-11 13:15:16 +02:00
parent 00b1780b10
commit e9875206ff
5 changed files with 80 additions and 28 deletions
+1 -28
View File
@@ -23,9 +23,8 @@ import {
PLAYER_WALK_SPEED,
PLAYER_XZ_DAMPING_FACTOR,
} from "@/data/player/playerConfig";
import { useRepairMovementLocked } from "@/hooks/gameplay/useRepairMovementLocked";
import { InteractionManager } from "@/managers/InteractionManager";
import { useGameStore } from "@/managers/stores/useGameStore";
import type { MissionStep } from "@/types/gameplay/repairMission";
import type { Vector3Tuple } from "@/types/three/three";
type Keys = {
@@ -75,32 +74,6 @@ function setMovementKey(keys: Keys, key: string, pressed: boolean): boolean {
}
}
function isRepairMovementLocked(step: MissionStep): boolean {
return (
step === "inspected" ||
step === "fragmented" ||
step === "scanning" ||
step === "repairing" ||
step === "reassembling"
);
}
function useRepairMovementLocked(): boolean {
return useGameStore((state) => {
switch (state.mainState) {
case "bike":
return isRepairMovementLocked(state.bike.currentStep);
case "pylone":
return isRepairMovementLocked(state.pylone.currentStep);
case "ferme":
return isRepairMovementLocked(state.ferme.currentStep);
case "intro":
case "outro":
return false;
}
});
}
export function PlayerController({
octree,
spawnPosition,