zone visibility

This commit is contained in:
wass08
2026-01-29 07:42:30 +09:00
parent 247180ebf9
commit a1a0e78384
2 changed files with 22 additions and 0 deletions
+3
View File
@@ -10,6 +10,7 @@ import { MathUtils, type Mesh } from 'three'
import { color, float, fract, fwidth, mix, positionLocal } from 'three/tsl'
import { MeshBasicNodeMaterial } from 'three/webgpu'
import { useKeyboard } from '@/hooks/use-keyboard'
import { ZoneSystem } from '../systems/zone/zone-system'
import { ToolManager } from '../tools/tool-manager'
import { ActionMenu } from '../ui/action-menu'
import { SidebarProvider } from '../ui/primitives/sidebar'
@@ -36,6 +37,8 @@ export default function Editor() {
</SidebarProvider>
<Viewer>
<SelectionManager />
{/* Editor only system to toggle zone visibility */}
<ZoneSystem />
{/* <Stats /> */}
<Grid cellColor="#666" sectionColor="#999" fadeDistance={30} />
<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;
}