// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Modules/ModuleInterface.h" #include "Toolkits/AssetEditorToolkit.h" #include "Delegates/IDelegateInstance.h" #define UE_API MASSENTITYEDITOR_API class IMassEntityEditor; struct FGraphPanelNodeFactory; struct FGraphNodeClassHelper; class UWorld; /** * The public interface to this module */ class FMassEntityEditorModule : public IModuleInterface, public IHasMenuExtensibility, public IHasToolBarExtensibility { public: UE_API virtual void StartupModule() override; UE_API virtual void ShutdownModule() override; virtual TSharedPtr GetMenuExtensibilityManager() override { return MenuExtensibilityManager; } virtual TSharedPtr GetToolBarExtensibilityManager() override { return ToolBarExtensibilityManager; } TSharedPtr GetProcessorClassCache() { return ProcessorClassCache; } protected: #if WITH_UNREAL_DEVELOPER_TOOLS static UE_API void OnWorldCleanup(UWorld* /*World*/, bool /*bSessionEnded*/, bool /*bCleanupResources*/); FDelegateHandle OnWorldCleanupHandle; #endif // WITH_UNREAL_DEVELOPER_TOOLS TSharedPtr ProcessorClassCache; TSharedPtr MenuExtensibilityManager; TSharedPtr ToolBarExtensibilityManager; }; #undef UE_API