From 977395bcc6530e3bac993f267887b37891debf45 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 11 Apr 2026 04:37:06 +0200 Subject: [PATCH] Add applySceneExitChange function to handle scene exit changes --- src/app/App.tsx | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/app/App.tsx b/src/app/App.tsx index f257c596..335eb684 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -4172,6 +4172,43 @@ export function App({ store, initialStatusMessage }: AppProps) { } }; + const applySceneExitChange = ( + overrides: { + enabled?: boolean; + targetSceneId?: string; + targetEntryEntityId?: string; + } = {} + ) => { + if (selectedSceneExit === null) { + setStatusMessage("Select a Scene Exit before editing it."); + return; + } + + try { + const nextEntity = createSceneExitEntity({ + id: selectedSceneExit.id, + name: selectedSceneExit.name, + position: snapVec3ToGrid( + readVec3Draft(entityPositionDraft, "Scene Exit position"), + DEFAULT_GRID_SIZE + ), + radius: readPositiveNumberDraft( + sceneExitRadiusDraft, + "Scene Exit radius" + ), + prompt: readInteractablePromptDraft(sceneExitPromptDraft), + enabled: overrides.enabled ?? sceneExitEnabledDraft, + targetSceneId: overrides.targetSceneId ?? sceneExitTargetSceneIdDraft, + targetEntryEntityId: + overrides.targetEntryEntityId ?? sceneExitTargetEntryIdDraft + }); + + commitEntityChange(selectedSceneExit, nextEntity, "Updated Scene Exit."); + } catch (error) { + setStatusMessage(getErrorMessage(error)); + } + }; + const commitInteractionLinkChange = ( currentLink: InteractionLink, nextLink: InteractionLink,