From 091c0102da9d9323ba69d167172b49935b1ff6cd Mon Sep 17 00:00:00 2001 From: Andraxion Date: Sat, 27 Jun 2026 04:51:55 -0400 Subject: [PATCH] Initialize studio controller refs before UI boot --- src/worldshaperStudio/runtime.ts | 16 ++++++++------ .../runtimeControllerBootstrap.ts | 22 +++++++++++++------ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/worldshaperStudio/runtime.ts b/src/worldshaperStudio/runtime.ts index 8b2579b..336973b 100644 --- a/src/worldshaperStudio/runtime.ts +++ b/src/worldshaperStudio/runtime.ts @@ -4755,14 +4755,16 @@ export function startWorldshaperStudio(bootstrap: WorldshaperStudioBootstrap, in worldRuntimeState, syncWorldNeighborhoodForViewport, drawNow, + setControllerRefs: (controllerRefs) => { + historyController = controllerRefs.historyController; + npcController = controllerRefs.npcController; + sidebarController = controllerRefs.sidebarController; + renderController = controllerRefs.renderController; + persistenceController = controllerRefs.persistenceController; + importController = controllerRefs.importController; + interactionController = controllerRefs.interactionController; + }, }); - historyController = runtimeControllerBootstrap.historyController; - npcController = runtimeControllerBootstrap.npcController; - sidebarController = runtimeControllerBootstrap.sidebarController; - renderController = runtimeControllerBootstrap.renderController; - persistenceController = runtimeControllerBootstrap.persistenceController; - importController = runtimeControllerBootstrap.importController; - interactionController = runtimeControllerBootstrap.interactionController; statusLogWindowController = runtimeControllerBootstrap.statusLogWindowController; runtimeLogging.setStatusLogWindowController(statusLogWindowController); } diff --git a/src/worldshaperStudio/runtimeControllerBootstrap.ts b/src/worldshaperStudio/runtimeControllerBootstrap.ts index 465c53c..4a192f0 100644 --- a/src/worldshaperStudio/runtimeControllerBootstrap.ts +++ b/src/worldshaperStudio/runtimeControllerBootstrap.ts @@ -48,6 +48,7 @@ export function initializeRuntimeControllers(config) { worldRuntimeState, syncWorldNeighborhoodForViewport, drawNow, + setControllerRefs, } = config; const toolWindowController = createToolWindowController(scope); @@ -150,6 +151,19 @@ export function initializeRuntimeControllers(config) { const persistenceController = createPersistenceController(scope); const importController = createImportController(scope); const interactionController = createInteractionController(scope); + const controllerRefs = { + historyController, + npcController, + sidebarController, + renderController, + persistenceController, + importController, + interactionController, + }; + + if (typeof setControllerRefs === "function") { + setControllerRefs(controllerRefs); + } const persistPopupBoundsDeferred = createDebouncedCallback(() => { persistPopupBounds(); @@ -193,13 +207,7 @@ export function initializeRuntimeControllers(config) { }); return { - historyController, - npcController, - sidebarController, - renderController, - persistenceController, - importController, - interactionController, + ...controllerRefs, statusLogWindowController, changelogSplashWindowController, persistPopupBoundsDeferred,