// Copyright Epic Games, Inc. All Rights Reserved. #include "CoreMinimal.h" #include "Modules/ModuleManager.h" #include "Toolkits/AssetEditorToolkit.h" #include "ISkeletalMeshEditor.h" #include "ISkeletalMeshEditorModule.h" #include "SkeletalMeshEditor.h" class FSkeletalMeshEditorModule : public ISkeletalMeshEditorModule { public: /** Constructor, set up console commands and variables **/ FSkeletalMeshEditorModule() { } /** Called right after the module DLL has been loaded and the module object has been created */ virtual void StartupModule() override { MenuExtensibilityManager = MakeShareable(new FExtensibilityManager); ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager); } /** Called before the module is unloaded, right before the module object is destroyed. */ virtual void ShutdownModule() override { MenuExtensibilityManager.Reset(); ToolBarExtensibilityManager.Reset(); } virtual TSharedRef CreateSkeletalMeshEditor(const EToolkitMode::Type Mode, const TSharedPtr& InitToolkitHost, USkeletalMesh* InSkeletalMesh) override { TSharedRef SkeletalMeshEditor(new FSkeletalMeshEditor()); SkeletalMeshEditor->InitSkeletalMeshEditor(Mode, InitToolkitHost, InSkeletalMesh); return SkeletalMeshEditor; } virtual TArray& GetPostEditorInitDelegates() override { return SkeletalMeshEditorInitialized; } virtual TArray& GetAllSkeletalMeshEditorToolbarExtenders() override { return SkeletalMeshEditorToolbarExtenders; } /** Gets the extensibility managers for outside entities to extend this editor's menus and toolbars */ virtual TSharedPtr GetMenuExtensibilityManager() override { return MenuExtensibilityManager; } virtual TSharedPtr GetToolBarExtensibilityManager() override { return ToolBarExtensibilityManager; } private: TSharedPtr MenuExtensibilityManager; TSharedPtr ToolBarExtensibilityManager; TArray SkeletalMeshEditorInitialized; TArray SkeletalMeshEditorToolbarExtenders; }; IMPLEMENT_MODULE(FSkeletalMeshEditorModule, SkeletalMeshEditor);