From e20ead88e154b77f5e63695c7738a5ff53ab1e14 Mon Sep 17 00:00:00 2001 From: Tom Boullay Date: Tue, 28 Apr 2026 14:46:27 +0200 Subject: [PATCH] standardize source naming conventions --- src/components/{3d => three}/GrabbableObject.tsx | 4 ++-- .../{3d => three}/InteractableObject.tsx | 4 ++-- src/components/{3d => three}/TriggerObject.tsx | 6 +++--- src/data/debug/testSceneConfig.ts | 2 +- src/data/docs/docsTranslations.ts | 14 +++++++------- src/data/interaction/triggerConfig.ts | 2 +- src/data/player/playerConfig.ts | 2 +- src/hooks/useInteraction.ts | 2 +- src/hooks/useOctreeGraphNode.ts | 2 +- src/{stateManager => managers}/AudioManager.ts | 0 .../InteractionManager.ts | 0 src/types/editor.ts | 2 +- src/types/{3d.ts => three.ts} | 0 src/utils/debug/scene/DebugCameraControls.tsx | 2 +- src/world/GameMap.tsx | 2 +- src/world/World.tsx | 4 ++-- src/world/debug/TestScene.tsx | 6 +++--- .../player/{PlayerComponent.tsx => Player.tsx} | 8 ++++---- src/world/player/PlayerController.tsx | 4 ++-- 19 files changed, 33 insertions(+), 33 deletions(-) rename src/components/{3d => three}/GrabbableObject.tsx (96%) rename src/components/{3d => three}/InteractableObject.tsx (97%) rename src/components/{3d => three}/TriggerObject.tsx (91%) rename src/{stateManager => managers}/AudioManager.ts (100%) rename src/{stateManager => managers}/InteractionManager.ts (100%) rename src/types/{3d.ts => three.ts} (100%) rename src/world/player/{PlayerComponent.tsx => Player.tsx} (79%) diff --git a/src/components/3d/GrabbableObject.tsx b/src/components/three/GrabbableObject.tsx similarity index 96% rename from src/components/3d/GrabbableObject.tsx rename to src/components/three/GrabbableObject.tsx index 7de388a..abd580e 100644 --- a/src/components/3d/GrabbableObject.tsx +++ b/src/components/three/GrabbableObject.tsx @@ -3,7 +3,7 @@ import { useFrame, useThree } from "@react-three/fiber"; import { RigidBody } from "@react-three/rapier"; import type { RapierRigidBody } from "@react-three/rapier"; import * as THREE from "three"; -import { InteractableObject } from "@/components/3d/InteractableObject"; +import { InteractableObject } from "@/components/three/InteractableObject"; import { GRAB_DEFAULT_COLLIDERS, GRAB_DEFAULT_LABEL, @@ -21,7 +21,7 @@ import { GRAB_THROW_BOOST_STEP, } from "@/data/interaction/grabConfig"; import { useDebugFolder } from "@/hooks/debug/useDebugFolder"; -import type { ColliderShape, Vector3Tuple } from "@/types/3d"; +import type { ColliderShape, Vector3Tuple } from "@/types/three"; interface GrabbableObjectProps { position: Vector3Tuple; diff --git a/src/components/3d/InteractableObject.tsx b/src/components/three/InteractableObject.tsx similarity index 97% rename from src/components/3d/InteractableObject.tsx rename to src/components/three/InteractableObject.tsx index e69bdc3..bcca255 100644 --- a/src/components/3d/InteractableObject.tsx +++ b/src/components/three/InteractableObject.tsx @@ -11,9 +11,9 @@ import { } from "@/data/debug/debugConfig"; import { Debug } from "@/utils/debug/Debug"; import { useDebugFolder } from "@/hooks/debug/useDebugFolder"; -import { InteractionManager } from "@/stateManager/InteractionManager"; +import { InteractionManager } from "@/managers/InteractionManager"; import { INTERACTION_RADIUS } from "@/data/interaction/interactionConfig"; -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; import type { InteractableHandle } from "@/types/interaction"; interface InteractableObjectBaseProps { diff --git a/src/components/3d/TriggerObject.tsx b/src/components/three/TriggerObject.tsx similarity index 91% rename from src/components/3d/TriggerObject.tsx rename to src/components/three/TriggerObject.tsx index ab595a1..4e11c96 100644 --- a/src/components/3d/TriggerObject.tsx +++ b/src/components/three/TriggerObject.tsx @@ -1,15 +1,15 @@ import { useState } from "react"; import { useGLTF } from "@react-three/drei"; import { RigidBody } from "@react-three/rapier"; -import { InteractableObject } from "@/components/3d/InteractableObject"; +import { InteractableObject } from "@/components/three/InteractableObject"; import { TRIGGER_DEFAULT_COLLIDERS, TRIGGER_DEFAULT_LABEL, TRIGGER_DEFAULT_SOUND_VOLUME, TRIGGER_DEFAULT_SPAWN_OFFSET, } from "@/data/interaction/triggerConfig"; -import { AudioManager } from "@/stateManager/AudioManager"; -import type { ColliderShape, Vector3Tuple } from "@/types/3d"; +import { AudioManager } from "@/managers/AudioManager"; +import type { ColliderShape, Vector3Tuple } from "@/types/three"; interface SpawnedModel { id: number; diff --git a/src/data/debug/testSceneConfig.ts b/src/data/debug/testSceneConfig.ts index 0cd23bf..da1edc2 100644 --- a/src/data/debug/testSceneConfig.ts +++ b/src/data/debug/testSceneConfig.ts @@ -1,4 +1,4 @@ -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; export const TEST_SCENE_FLOOR_POSITION: Vector3Tuple = [0, -0.5, 0]; export const TEST_SCENE_FLOOR_SIZE: Vector3Tuple = [200, 1, 200]; diff --git a/src/data/docs/docsTranslations.ts b/src/data/docs/docsTranslations.ts index db8cadd..1b26a88 100644 --- a/src/data/docs/docsTranslations.ts +++ b/src/data/docs/docsTranslations.ts @@ -61,7 +61,7 @@ la-fabrik/ │ ├── 3d/ # Éléments 3D réutilisables │ └── ui/ # Overlays HTML hors Canvas │ - ├── stateManager/ # Logique, état et orchestration + ├── managers/ # Logique, état et orchestration ├── hooks/ # Hooks React autour des managers ├── data/ # Configuration statique ├── shaders/ # Shaders GLSL @@ -99,21 +99,21 @@ Ce document décrit le code réellement présent aujourd'hui dans le dépôt. - le rig joueur quand le mode caméra actif est \`player\` - \`src/world/Map.tsx\` charge le modèle principal de la carte et construit l'octree de collision. - \`src/world/debug/TestScene.tsx\` fournit une scène orientée debug pour les interactions et la physique. -- \`src/world/player/PlayerComponent.tsx\` monte la caméra et le contrôleur. +- \`src/world/player/Player.tsx\` monte la caméra et le contrôleur. - \`src/world/player/PlayerController.tsx\` gère le mouvement pointer lock, le saut et les inputs d'interaction. ## Modèle d'interaction -- \`src/stateManager/InteractionManager.ts\` est la source d'état actuelle des interactions. -- \`src/components/3d/InteractableObject.tsx\` gère la détection de focus par distance et raycasting. -- \`src/components/3d/TriggerObject.tsx\` implémente les interactions de type trigger. -- \`src/components/3d/GrabbableObject.tsx\` implémente les interactions saisir / relâcher. +- \`src/managers/InteractionManager.ts\` est la source d'état actuelle des interactions. +- \`src/components/three/InteractableObject.tsx\` gère la détection de focus par distance et raycasting. +- \`src/components/three/TriggerObject.tsx\` implémente les interactions de type trigger. +- \`src/components/three/GrabbableObject.tsx\` implémente les interactions saisir / relâcher. - \`src/hooks/useInteraction.ts\` expose un snapshot d'interaction à l'UI React. - \`src/components/ui/InteractPrompt.tsx\` affiche le prompt \`E\` pour les interactions trigger. ## Audio -- \`src/stateManager/AudioManager.ts\` fournit actuellement une lecture de sons one-shot avec pool. +- \`src/managers/AudioManager.ts\` fournit actuellement une lecture de sons one-shot avec pool. - Les interactions trigger peuvent lancer directement un son via \`AudioManager\`. ## Système debug diff --git a/src/data/interaction/triggerConfig.ts b/src/data/interaction/triggerConfig.ts index 304ef82..46bf396 100644 --- a/src/data/interaction/triggerConfig.ts +++ b/src/data/interaction/triggerConfig.ts @@ -1,4 +1,4 @@ -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; export const TRIGGER_DEFAULT_COLLIDERS = "ball"; export const TRIGGER_DEFAULT_LABEL = "Interagir"; diff --git a/src/data/player/playerConfig.ts b/src/data/player/playerConfig.ts index 43e183e..a8b60ea 100644 --- a/src/data/player/playerConfig.ts +++ b/src/data/player/playerConfig.ts @@ -1,4 +1,4 @@ -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; export const PLAYER_EYE_HEIGHT = 1.75; export const PLAYER_CAPSULE_RADIUS = 0.35; diff --git a/src/hooks/useInteraction.ts b/src/hooks/useInteraction.ts index 58fabc2..34a2a86 100644 --- a/src/hooks/useInteraction.ts +++ b/src/hooks/useInteraction.ts @@ -1,5 +1,5 @@ import { useSyncExternalStore } from "react"; -import { InteractionManager } from "@/stateManager/InteractionManager"; +import { InteractionManager } from "@/managers/InteractionManager"; import type { InteractionSnapshot } from "@/types/interaction"; const manager = InteractionManager.getInstance(); diff --git a/src/hooks/useOctreeGraphNode.ts b/src/hooks/useOctreeGraphNode.ts index 45baa99..3a4f3a3 100644 --- a/src/hooks/useOctreeGraphNode.ts +++ b/src/hooks/useOctreeGraphNode.ts @@ -2,7 +2,7 @@ import { useEffect, useRef } from "react"; import type { RefObject } from "react"; import type { Object3D } from "three"; import { Octree } from "three/addons/math/Octree.js"; -import type { OctreeReadyHandler } from "@/types/3d"; +import type { OctreeReadyHandler } from "@/types/three"; export function useOctreeGraphNode( graphNodeRef: RefObject, diff --git a/src/stateManager/AudioManager.ts b/src/managers/AudioManager.ts similarity index 100% rename from src/stateManager/AudioManager.ts rename to src/managers/AudioManager.ts diff --git a/src/stateManager/InteractionManager.ts b/src/managers/InteractionManager.ts similarity index 100% rename from src/stateManager/InteractionManager.ts rename to src/managers/InteractionManager.ts diff --git a/src/types/editor.ts b/src/types/editor.ts index f6f2d88..73306c4 100644 --- a/src/types/editor.ts +++ b/src/types/editor.ts @@ -1,4 +1,4 @@ -import type { Vector3Tuple } from "./3d"; +import type { Vector3Tuple } from "./three"; export interface MapNode { name: string; diff --git a/src/types/3d.ts b/src/types/three.ts similarity index 100% rename from src/types/3d.ts rename to src/types/three.ts diff --git a/src/utils/debug/scene/DebugCameraControls.tsx b/src/utils/debug/scene/DebugCameraControls.tsx index 8e4234c..11acdb0 100644 --- a/src/utils/debug/scene/DebugCameraControls.tsx +++ b/src/utils/debug/scene/DebugCameraControls.tsx @@ -8,7 +8,7 @@ import { PLAYER_EYE_HEIGHT, PLAYER_SPAWN_POSITION_GAME, } from "@/data/player/playerConfig"; -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; const DEBUG_CAMERA_TARGET: Vector3Tuple = [ PLAYER_SPAWN_POSITION_GAME[0], diff --git a/src/world/GameMap.tsx b/src/world/GameMap.tsx index d96ce09..dd7faaa 100644 --- a/src/world/GameMap.tsx +++ b/src/world/GameMap.tsx @@ -3,7 +3,7 @@ import { useGLTF } from "@react-three/drei"; import * as THREE from "three"; import { useOctreeGraphNode } from "@/hooks/useOctreeGraphNode"; import { loadMapSceneData } from "@/utils/loadMapSceneData"; -import type { OctreeReadyHandler } from "@/types/3d"; +import type { OctreeReadyHandler } from "@/types/three"; import type { MapNode } from "@/types/editor"; interface GameMapProps { diff --git a/src/world/World.tsx b/src/world/World.tsx index c3c9dda..c5569e4 100644 --- a/src/world/World.tsx +++ b/src/world/World.tsx @@ -11,7 +11,7 @@ import { DebugHelpers } from "@/utils/debug/scene/DebugHelpers"; import { Environment } from "@/world/Environment"; import { Lighting } from "@/world/Lighting"; import { GameMap } from "@/world/GameMap"; -import { PlayerComponent } from "@/world/player/PlayerComponent"; +import { Player } from "@/world/player/Player"; import { TestScene } from "@/world/debug/TestScene"; export function World(): React.JSX.Element { @@ -37,7 +37,7 @@ export function World(): React.JSX.Element { )} {cameraMode !== "debug" ? ( - + ) : null} ); diff --git a/src/world/debug/TestScene.tsx b/src/world/debug/TestScene.tsx index 0c41182..edf612f 100644 --- a/src/world/debug/TestScene.tsx +++ b/src/world/debug/TestScene.tsx @@ -1,8 +1,8 @@ import { useRef } from "react"; import { Physics, RigidBody, CuboidCollider } from "@react-three/rapier"; import * as THREE from "three"; -import { GrabbableObject } from "@/components/3d/GrabbableObject"; -import { TriggerObject } from "@/components/3d/TriggerObject"; +import { GrabbableObject } from "@/components/three/GrabbableObject"; +import { TriggerObject } from "@/components/three/TriggerObject"; import { TEST_SCENE_FLOOR_COLLIDER_HALF_EXTENTS, TEST_SCENE_FLOOR_POSITION, @@ -21,7 +21,7 @@ import { TEST_SCENE_TRIGGER_SOUND_PATH, } from "@/data/debug/testSceneConfig"; import { useOctreeGraphNode } from "@/hooks/useOctreeGraphNode"; -import type { OctreeReadyHandler } from "@/types/3d"; +import type { OctreeReadyHandler } from "@/types/three"; interface TestSceneProps { onOctreeReady: OctreeReadyHandler; diff --git a/src/world/player/PlayerComponent.tsx b/src/world/player/Player.tsx similarity index 79% rename from src/world/player/PlayerComponent.tsx rename to src/world/player/Player.tsx index 3b950e0..8fdc489 100644 --- a/src/world/player/PlayerComponent.tsx +++ b/src/world/player/Player.tsx @@ -1,19 +1,19 @@ import { useEffect } from "react"; import { useThree } from "@react-three/fiber"; import type { Octree } from "three/addons/math/Octree.js"; -import type { Vector3Tuple } from "@/types/3d"; +import type { Vector3Tuple } from "@/types/three"; import { PlayerCamera } from "@/world/player/PlayerCamera"; import { PlayerController } from "@/world/player/PlayerController"; -interface PlayerComponentProps { +interface PlayerProps { octree: Octree | null; spawnPosition: Vector3Tuple; } -export function PlayerComponent({ +export function Player({ spawnPosition, octree, -}: PlayerComponentProps): React.JSX.Element { +}: PlayerProps): React.JSX.Element { const camera = useThree((state) => state.camera); useEffect(() => { diff --git a/src/world/player/PlayerController.tsx b/src/world/player/PlayerController.tsx index 67aedd8..b9b714b 100644 --- a/src/world/player/PlayerController.tsx +++ b/src/world/player/PlayerController.tsx @@ -23,8 +23,8 @@ import { PLAYER_WALK_SPEED, PLAYER_XZ_DAMPING_FACTOR, } from "@/data/player/playerConfig"; -import { InteractionManager } from "@/stateManager/InteractionManager"; -import type { Vector3Tuple } from "@/types/3d"; +import { InteractionManager } from "@/managers/InteractionManager"; +import type { Vector3Tuple } from "@/types/three"; type Keys = { forward: boolean;