diff --git a/src/components/three/models/SimpleModel.tsx b/src/components/three/models/SimpleModel.tsx
index 754c3e4..d5cbf86 100644
--- a/src/components/three/models/SimpleModel.tsx
+++ b/src/components/three/models/SimpleModel.tsx
@@ -1,8 +1,22 @@
import { useEffect, useMemo } from "react";
+import * as THREE from "three";
import { useLoggedGLTF } from "@/hooks/three/useLoggedGLTF";
import type { ModelTransformProps, Vector3Tuple } from "@/types/three/three";
import { disposeObject3D } from "@/utils/three/dispose";
+function applyShadowSettings(
+ object: THREE.Object3D,
+ castShadow: boolean,
+ receiveShadow: boolean,
+): void {
+ object.traverse((child) => {
+ if (!(child instanceof THREE.Mesh)) return;
+
+ child.castShadow = castShadow;
+ child.receiveShadow = receiveShadow;
+ });
+}
+
export interface SimpleModelConfig extends ModelTransformProps {
modelPath: string;
castShadow?: boolean;
@@ -30,6 +44,10 @@ export function SimpleModel({
});
const model = useMemo(() => scene.clone(true), [scene]);
+ useEffect(() => {
+ applyShadowSettings(model, castShadow, receiveShadow);
+ }, [castShadow, model, receiveShadow]);
+
useEffect(() => {
return () => {
disposeObject3D(model);
@@ -41,13 +59,7 @@ export function SimpleModel({
return (
- {children ?? (
-
- )}
+ {children ?? }
);
}
diff --git a/src/data/world/fogConfig.ts b/src/data/world/fogConfig.ts
index 93a5d59..dbc9954 100644
--- a/src/data/world/fogConfig.ts
+++ b/src/data/world/fogConfig.ts
@@ -3,7 +3,7 @@ import { TERRAIN_COLORS } from "@/data/world/terrainConfig";
export type FogMode = "linear" | "exp2";
export const FOG_CONFIG = {
- enabled: true,
+ enabled: false,
mode: "exp2" as FogMode,
color: "#dfe7d8",
near: 32,
diff --git a/src/world/Environment.tsx b/src/world/Environment.tsx
index 3679c45..7ca2a23 100644
--- a/src/world/Environment.tsx
+++ b/src/world/Environment.tsx
@@ -9,7 +9,7 @@ import {
GAME_SCENE_SKY_MODEL_SCALE,
PHYSICS_SCENE_BACKGROUND_COLOR,
} from "@/data/world/environmentConfig";
-import { FOG_CONFIG, FOG_LIGHTING_COLOR_MIX } from "@/data/world/fogConfig";
+import { FOG_LIGHTING_COLOR_MIX } from "@/data/world/fogConfig";
import { useCameraMode } from "@/hooks/debug/useCameraMode";
import { useSceneMode } from "@/hooks/debug/useSceneMode";
import { useFogSettings } from "@/hooks/world/useFogSettings";
@@ -57,15 +57,13 @@ export function Environment(): React.JSX.Element {
return (
<>
- {FOG_CONFIG.enabled &&
- fogEnabled &&
+ {fogEnabled &&
sceneMode === "game" &&
cameraMode === "player" &&
fog.mode === "linear" ? (
) : null}
- {FOG_CONFIG.enabled &&
- fogEnabled &&
+ {fogEnabled &&
sceneMode === "game" &&
cameraMode === "player" &&
fog.mode === "exp2" ? (
diff --git a/src/world/GameMap.tsx b/src/world/GameMap.tsx
index cfb99db..8de9b7b 100644
--- a/src/world/GameMap.tsx
+++ b/src/world/GameMap.tsx
@@ -391,7 +391,13 @@ function FallbackMapNode({ node }: { node: MapNode }): React.JSX.Element {
const normalizedScale = normalizeMapScale(scale);
return (
-
+