fix: enable terrain loading for collision octree build

This commit is contained in:
Tom Boullay
2026-05-14 00:16:09 +02:00
parent 439f9c1dad
commit fdf03349cf
+12 -1
View File
@@ -7,9 +7,12 @@ import {
useRef, useRef,
useState, useState,
} from "react"; } from "react";
import * as THREE from "three";
import { useClonedObject } from "@/hooks/three/useClonedObject"; import { useClonedObject } from "@/hooks/three/useClonedObject";
import { useLoggedGLTF } from "@/hooks/three/useLoggedGLTF"; import { useLoggedGLTF } from "@/hooks/three/useLoggedGLTF";
import { TerrainModel } from "@/components/three/world/TerrainModel";
import { GameMapCollision } from "@/world/GameMapCollision"; import { GameMapCollision } from "@/world/GameMapCollision";
import { VegetationSystem } from "@/world/vegetation/VegetationSystem";
import type { SceneLoadingChangeHandler } from "@/types/world/sceneLoading"; import type { SceneLoadingChangeHandler } from "@/types/world/sceneLoading";
import { logger } from "@/utils/core/Logger"; import { logger } from "@/utils/core/Logger";
import { loadMapSceneData } from "@/utils/map/loadMapSceneData"; import { loadMapSceneData } from "@/utils/map/loadMapSceneData";
@@ -222,6 +225,8 @@ export function GameMap({
</ModelErrorBoundary> </ModelErrorBoundary>
))} ))}
</group> </group>
<VegetationSystem />
<TerrainModel />
<GameMapCollision <GameMapCollision
buildOctree={buildOctree} buildOctree={buildOctree}
mapReady={mapReady} mapReady={mapReady}
@@ -299,8 +304,14 @@ function ModelInstance({
const sceneInstance = useClonedObject(scene); const sceneInstance = useClonedObject(scene);
useEffect(() => { useEffect(() => {
sceneInstance.traverse((child) => {
if (child instanceof THREE.Mesh) {
child.castShadow = true;
child.receiveShadow = true;
}
});
onLoaded(); onLoaded();
}, [onLoaded]); }, [onLoaded, sceneInstance]);
return ( return (
<primitive <primitive