diff --git a/src/components/three/world/EcoleModel.tsx b/src/components/three/world/EcoleModel.tsx index aa72338..138e71d 100644 --- a/src/components/three/world/EcoleModel.tsx +++ b/src/components/three/world/EcoleModel.tsx @@ -3,13 +3,25 @@ import { MergedStaticMapModel, type MergedStaticMapModelProps, } from "@/components/three/world/MergedStaticMapModel"; +import { getMapLodModelPath } from "@/data/world/mapLodConfig"; +import { useMapLodModelPath } from "@/hooks/world/useMapLodModelPath"; const ECOLE_MODEL_PATH = "/models/ecole/model.gltf"; +const ECOLE_LOD_MODEL_PATH = getMapLodModelPath("ecole"); type EcoleModelProps = Omit; export function EcoleModel(props: EcoleModelProps): React.JSX.Element { - return ; + const modelPath = useMapLodModelPath({ + modelName: "ecole", + modelPath: ECOLE_MODEL_PATH, + position: props.position, + }); + + return ; } useGLTF.preload(ECOLE_MODEL_PATH); +if (ECOLE_LOD_MODEL_PATH) { + useGLTF.preload(ECOLE_LOD_MODEL_PATH); +} diff --git a/src/components/ui/GameSettingsMenu.tsx b/src/components/ui/GameSettingsMenu.tsx index 763d9d6..754bc70 100644 --- a/src/components/ui/GameSettingsMenu.tsx +++ b/src/components/ui/GameSettingsMenu.tsx @@ -1,7 +1,22 @@ import { useEffect } from "react"; -import { RotateCcw, X } from "lucide-react"; +import type { ReactNode } from "react"; +import { + Captions, + Gauge, + LogOut, + Music2, + RotateCcw, + Volume2, + X, +} from "lucide-react"; +import { + GRAPHICS_PRESET_KEYS, + GRAPHICS_PRESETS, + type GraphicsPreset, +} from "@/data/world/graphicsConfig"; import { useGameStore } from "@/managers/stores/useGameStore"; import { useSettingsStore } from "@/managers/stores/useSettingsStore"; +import { useWorldSettingsStore } from "@/managers/stores/useWorldSettingsStore"; import type { SubtitleLanguage } from "@/types/settings/settings"; import { isDebugEnabled } from "@/utils/debug/isDebugEnabled"; @@ -21,6 +36,7 @@ function clearCookies(): void { interface VolumeSliderProps { id: string; label: string; + icon: ReactNode; value: number; onChange: (value: number) => void; } @@ -28,13 +44,17 @@ interface VolumeSliderProps { function VolumeSlider({ id, label, + icon, value, onChange, }: VolumeSliderProps): React.JSX.Element { return (