// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once #include "ModuleInterface.h" #include "AIGraphModule.h" #include "Toolkits/IToolkit.h" // For EAssetEditorMode DECLARE_LOG_CATEGORY_EXTERN(LogEnvironmentQueryEditor, Log, All); class IEnvironmentQueryEditor; class FEnvironmentQueryEditorModule : public IModuleInterface, public IHasMenuExtensibility, public IHasToolBarExtensibility { public: // IModuleInterface virtual void StartupModule() override; virtual void ShutdownModule() override; /** Creates an instance of EQS editor. Only virtual so that it can be called across the DLL boundary. */ virtual TSharedRef CreateEnvironmentQueryEditor( const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UEnvQuery* Query ); /** Gets the extensibility managers for outside entities to extend static mesh editor's menus and toolbars */ virtual TSharedPtr GetMenuExtensibilityManager() override { return MenuExtensibilityManager; } virtual TSharedPtr GetToolBarExtensibilityManager() override { return ToolBarExtensibilityManager; } /** EQS Editor app identifier string */ static const FName EnvironmentQueryEditorAppIdentifier; TSharedPtr GetClassCache() { return ClassCache; } private: TSharedPtr ClassCache; TSharedPtr MenuExtensibilityManager; TSharedPtr ToolBarExtensibilityManager; /** Asset type actions */ TSharedPtr ItemDataAssetTypeActions; };