#pragma once #include "CoreMinimal.h" #include "Modules/ModuleManager.h" class FBlueprintEditor; class IInputProcessor; class UBlueprint; class UEdGraph; class FUEBlueprintMCPEditorModule : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; private: friend class FMCPZoneInputProcessor; void RegisterMenus(); void NotifyBridgeStatus(); void ToggleMCPZoneMode(TWeakPtr BlueprintEditor); bool IsMCPZoneModeActive(TWeakPtr BlueprintEditor) const; bool TryCreateMCPZoneFromScreenDrag(const FVector2f& StartScreenPosition, const FVector2f& EndScreenPosition); void CreateMCPZone(UEdGraph* Graph, UBlueprint* Blueprint, const FVector2f& GraphStart, const FVector2f& GraphEnd) const; void RemoveMCPZones(UBlueprint* Blueprint) const; bool bMCPZoneModeActive = false; TWeakPtr ActiveMCPZoneEditor; TSharedPtr MCPZoneInputProcessor; };