diff --git a/src/runtime-three/runtime-host.ts b/src/runtime-three/runtime-host.ts index de8afaa0..d42737ea 100644 --- a/src/runtime-three/runtime-host.ts +++ b/src/runtime-three/runtime-host.ts @@ -4336,14 +4336,8 @@ export class RuntimeHost { } private createRuntimeJunctionMaterial( - runtimeScene: RuntimeSceneDefinition, - materialId: string | null + material: MaterialDef | null ): Material { - const material = - materialId === null - ? null - : (runtimeScene.materials?.[materialId] ?? null); - return this.createRuntimeRoadGeneratedMaterial(material, 0x6f624d); } @@ -4427,7 +4421,7 @@ export class RuntimeHost { const mesh = new Mesh( geometry, - this.createRuntimeJunctionMaterial(runtimeScene, junction.materialId) + this.createRuntimeJunctionMaterial(junction.material) ); mesh.castShadow = false; mesh.receiveShadow = true; diff --git a/src/runtime-three/runtime-scene-build.ts b/src/runtime-three/runtime-scene-build.ts index d0c37274..13dca0c3 100644 --- a/src/runtime-three/runtime-scene-build.ts +++ b/src/runtime-three/runtime-scene-build.ts @@ -2057,7 +2057,14 @@ export function buildRuntimeSceneFromDocument( .map((path) => buildRuntimePath(path, enabledTerrains, document)); const splineCorridorJunctions = getSplineCorridorJunctions( document.splineCorridorJunctions - ).filter((junction) => junction.enabled); + ) + .filter((junction) => junction.enabled) + .map((junction): RuntimeSplineCorridorJunction => ({ + ...junction, + connections: junction.connections.map((connection) => ({ ...connection })), + center: cloneVec3(junction.center), + material: resolveRuntimeMaterial(document, junction.materialId) + })); const splineCorridorClipIntervalsByPath = resolveSplineCorridorJunctionClipIntervals({ paths: getScenePaths(document.paths),