From 082996b1528e0e7b41b77d7a3c896ed521056341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:28:56 -0600 Subject: [PATCH] feat: show environment --- .../tools/tankopedia/[id]/components/Lighting.tsx | 6 +++++- .../[id]/components/Model/components/Options.tsx | 14 +++++++++++++- .../tankopedia/[id]/components/SceneProps.tsx | 5 ++++- src/stores/tankopedia.ts | 2 ++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/app/tools/tankopedia/[id]/components/Lighting.tsx b/src/app/tools/tankopedia/[id]/components/Lighting.tsx index 538d96399..67884e630 100644 --- a/src/app/tools/tankopedia/[id]/components/Lighting.tsx +++ b/src/app/tools/tankopedia/[id]/components/Lighting.tsx @@ -1,14 +1,18 @@ import { Environment } from '@react-three/drei'; import { useModel } from '../../../../../hooks/useModel'; import { useDuel } from '../../../../../stores/duel'; +import { useTankopediaPersistent } from '../../../../../stores/tankopedia'; export function Lighting() { const protagonist = useDuel((state) => state.protagonist!); const { hasPbr } = useModel(protagonist.tank.id); + const showEnvironment = useTankopediaPersistent( + (state) => state.model.visual.showEnvironment, + ); return ( <> - + state.model.visual.showGrid, ); + const showEnvironment = useTankopediaPersistent( + (state) => state.model.visual.showEnvironment, + ); const greenPenetration = useTankopediaPersistent( (state) => state.model.visual.greenPenetration, ); @@ -87,6 +89,16 @@ export function Options({ isFullScreen, canvas }: OptionsProps) { > Green penetration + { + mutateTankopediaPersistent((draft) => { + draft.model.visual.showEnvironment = checked; + }); + }} + > + Show environment + diff --git a/src/app/tools/tankopedia/[id]/components/SceneProps.tsx b/src/app/tools/tankopedia/[id]/components/SceneProps.tsx index 49cd9a8ec..2be3155b5 100644 --- a/src/app/tools/tankopedia/[id]/components/SceneProps.tsx +++ b/src/app/tools/tankopedia/[id]/components/SceneProps.tsx @@ -6,8 +6,11 @@ export function SceneProps() { const showGrid = useTankopediaPersistent( (state) => state.model.visual.showGrid, ); + const showEnvironment = useTankopediaPersistent( + (state) => state.model.visual.showEnvironment, + ); - if (!showGrid) return null; + if (!showGrid || showEnvironment) return null; return ( <> diff --git a/src/stores/tankopedia.ts b/src/stores/tankopedia.ts index aa6603f08..5343690b1 100644 --- a/src/stores/tankopedia.ts +++ b/src/stores/tankopedia.ts @@ -32,6 +32,7 @@ interface TankopediaPersistent { controlsEnabled: boolean; showGrid: boolean; greenPenetration: boolean; + showEnvironment: boolean; }; }; sort: { @@ -76,6 +77,7 @@ export const useTankopediaPersistent = create()( controlsEnabled: true, showGrid: true, greenPenetration: false, + showEnvironment: false, }, }, sort: {