Add MCP combo button to the level editor toolbar

A "MCP" combo button in the top toolbar (LevelEditor.LevelEditorToolBar.User)
opens a dropdown with:
- Status: live Remote Control reachability (:30010, green/red) + re-check, and a
  "Start Remote Control server" action.
- Active tools (N): submenu listing the catalogue from tools.json (name + desc).
- Settings: opens the Setup Wizard tab.

The bridge ping is refactored into PingRc(bool) so it can update a cached status
silently (menu open) or with the startup notification.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bonchellon
2026-06-24 01:59:55 +03:00
parent 68c1ca32c0
commit c36b8976e1
2 changed files with 189 additions and 1 deletions

View File

@ -17,8 +17,14 @@ public:
private:
friend class FMCPZoneInputProcessor;
enum class EMcpRcStatus : uint8 { Unknown, Up, Down };
void RegisterMenus();
void RegisterWizardTabAndMenu();
void RegisterMCPToolbarButton();
void BuildMCPStatusMenu(class UToolMenu* Menu);
void BuildToolsSubMenu(class UToolMenu* Menu);
void PingRc(bool bNotify);
TSharedRef<class SDockTab> SpawnWizardTab(const class FSpawnTabArgs& Args);
void NotifyBridgeStatus();
void ToggleMCPZoneMode(TWeakPtr<FBlueprintEditor> BlueprintEditor);
@ -29,6 +35,7 @@ private:
bool bMCPZoneModeActive = false;
bool bWizardTabRegistered = false;
EMcpRcStatus CachedRcStatus = EMcpRcStatus::Unknown;
TWeakPtr<FBlueprintEditor> ActiveMCPZoneEditor;
TSharedPtr<IInputProcessor> MCPZoneInputProcessor;
};