From 2b676d985d752eda2b10f292f85125d32bba62e8 Mon Sep 17 00:00:00 2001 From: tom-boullay Date: Wed, 27 May 2026 11:06:14 +0200 Subject: [PATCH] feat(editor): focus selected model editing --- src/components/editor/EditorControls.tsx | 62 ++++++++++- src/components/editor/scene/EditorMap.tsx | 116 ++++++++++++++++++-- src/components/editor/scene/EditorScene.tsx | 3 + src/index.css | 62 ++++++++++- src/pages/editor/page.tsx | 20 ++++ src/utils/map/mapRuntimeClassification.ts | 39 +++++++ src/world/vegetation/vegetationConfig.ts | 8 ++ 7 files changed, 300 insertions(+), 10 deletions(-) create mode 100644 src/utils/map/mapRuntimeClassification.ts diff --git a/src/components/editor/EditorControls.tsx b/src/components/editor/EditorControls.tsx index e9b099d..51d960a 100644 --- a/src/components/editor/EditorControls.tsx +++ b/src/components/editor/EditorControls.tsx @@ -28,6 +28,8 @@ interface EditorControlsProps { mapNodes: MapNode[]; nodesCount: number; selectedNodeName: string | null; + lockTerrainSelection: boolean; + onLockTerrainSelectionChange: (locked: boolean) => void; isSelectionLocked: boolean; onSelectionLockToggle: () => void; onClearSelection: () => void; @@ -90,6 +92,8 @@ export function EditorControls({ mapNodes, nodesCount, selectedNodeName, + lockTerrainSelection, + onLockTerrainSelectionChange, isSelectionLocked, onSelectionLockToggle, onClearSelection, @@ -105,6 +109,9 @@ export function EditorControls({ }: EditorControlsProps): React.JSX.Element { const viewModeLabel = isPlayerMode ? "View locked" : "Lock view"; const jsonPreview = getJsonPreview(mapNodes, selectedNodeIndex); + const selectedNode = + selectedNodeIndex !== null ? mapNodes[selectedNodeIndex] : null; + const transformValues = getTransformValues(selectedNode ?? null); return ( <> @@ -155,7 +162,10 @@ export function EditorControls({ aria-pressed={transformMode === mode} >