fix zones
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { type ZoneNode, sceneRegistry, useScene } from '@pascal-app/core'
|
import { sceneRegistry, useScene, type ZoneNode } from '@pascal-app/core'
|
||||||
import { useViewer } from '@pascal-app/viewer'
|
import { useViewer } from '@pascal-app/viewer'
|
||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
import useEditor from '@/store/use-editor'
|
import useEditor from '@/store/use-editor'
|
||||||
@@ -24,10 +24,17 @@ export const ZoneSystem = () => {
|
|||||||
const hideInSoloMode = levelMode === 'solo' && selectedLevelId && !isOnSelectedLevel
|
const hideInSoloMode = levelMode === 'solo' && selectedLevelId && !isOnSelectedLevel
|
||||||
|
|
||||||
obj.visible = visible
|
obj.visible = visible
|
||||||
|
|
||||||
const label = obj.getObjectByName('label')
|
const label = obj.getObjectByName('label')
|
||||||
if (label) {
|
if (label) {
|
||||||
// Hide label if zone layer is off OR if in solo mode on a different level
|
// Hide label if zone layer is off OR if in solo mode on a different level
|
||||||
label.position.y = (visible && !hideInSoloMode) ? 1 : -1000
|
const showLabel = visible && !hideInSoloMode;
|
||||||
|
const labelPosition = obj.userData.labelPosition as [number, number, number] | undefined
|
||||||
|
if (showLabel && labelPosition) {
|
||||||
|
label.position.set(...labelPosition)
|
||||||
|
} else {
|
||||||
|
label.position.set(-9999, -9999, -9999)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, [structureLayer, levelMode, selectedLevelId])
|
}, [structureLayer, levelMode, selectedLevelId])
|
||||||
|
|||||||
@@ -177,7 +177,9 @@ export const ZoneRenderer = ({ node }: { node: ZoneNode }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<group ref={ref} {...handlers}>
|
<group ref={ref} {...handlers} userData={{
|
||||||
|
labelPosition: [centroid[0], 1, centroid[1]]
|
||||||
|
}}>
|
||||||
<Html name="label" position={[centroid[0], 1, centroid[1]]} style={{
|
<Html name="label" position={[centroid[0], 1, centroid[1]]} style={{
|
||||||
pointerEvents: 'none'
|
pointerEvents: 'none'
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user