zone visibility
This commit is contained in:
@@ -10,6 +10,7 @@ import { MathUtils, type Mesh } from 'three'
|
|||||||
import { color, float, fract, fwidth, mix, positionLocal } from 'three/tsl'
|
import { color, float, fract, fwidth, mix, positionLocal } from 'three/tsl'
|
||||||
import { MeshBasicNodeMaterial } from 'three/webgpu'
|
import { MeshBasicNodeMaterial } from 'three/webgpu'
|
||||||
import { useKeyboard } from '@/hooks/use-keyboard'
|
import { useKeyboard } from '@/hooks/use-keyboard'
|
||||||
|
import { ZoneSystem } from '../systems/zone/zone-system'
|
||||||
import { ToolManager } from '../tools/tool-manager'
|
import { ToolManager } from '../tools/tool-manager'
|
||||||
import { ActionMenu } from '../ui/action-menu'
|
import { ActionMenu } from '../ui/action-menu'
|
||||||
import { SidebarProvider } from '../ui/primitives/sidebar'
|
import { SidebarProvider } from '../ui/primitives/sidebar'
|
||||||
@@ -36,6 +37,8 @@ export default function Editor() {
|
|||||||
</SidebarProvider>
|
</SidebarProvider>
|
||||||
<Viewer>
|
<Viewer>
|
||||||
<SelectionManager />
|
<SelectionManager />
|
||||||
|
{/* Editor only system to toggle zone visibility */}
|
||||||
|
<ZoneSystem />
|
||||||
{/* <Stats /> */}
|
{/* <Stats /> */}
|
||||||
<Grid cellColor="#666" sectionColor="#999" fadeDistance={30} />
|
<Grid cellColor="#666" sectionColor="#999" fadeDistance={30} />
|
||||||
<ToolManager />
|
<ToolManager />
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import { sceneRegistry } from '@pascal-app/core'
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
import useEditor from '@/store/use-editor'
|
||||||
|
|
||||||
|
export const ZoneSystem = () => {
|
||||||
|
const structureLayer = useEditor((state) => state.structureLayer)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const visible = structureLayer === 'zones'
|
||||||
|
const zones = sceneRegistry.byType.zone || new Set()
|
||||||
|
zones.forEach((zoneId) => {
|
||||||
|
const node = sceneRegistry.nodes.get(zoneId)
|
||||||
|
if (node) {
|
||||||
|
node.visible = visible
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, [structureLayer])
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user