Files
UnrealEngineUWP/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationBlueprintEditorModule.h
thomas sarkanen 8d6c4cd88c Anim notify and sync marker workflow changes
Skeletons are no longer dirtied when adding notifies and sync markers from animation timelines.
Skeletons can still hold sync markers and notifies, but they are not mandatory and they can all be held in animation assets if required.
'Find References' for notifies and sync markers now launches the find/replace dialog when selected from the animation timeline.
Removing notifies and sync markers from the skeleton now does only that. To remove from animations, use the find/replace tab.
Updated BP node spawning for anim notifies to use a custom spawner, correctly use the asset registry, apply filtering and context sensitivity and move some of the code out of BlueprintGraph.
Added icons to distinguish sync markers/notifies in the editing tab.
Updated notify editing tab filtering to allow users to filter items from 'this' skeleton, compatible skeletons or other assets.

Additionally fixed up icons for some Persona tabs that were incorrect.

#jira UE-204872
#rb jaime.cifuentes, Phillip.Kavan

[CL 31168386 by thomas sarkanen in 5.4 branch]
2024-02-05 05:28:55 -05:00

59 lines
2.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "IAnimationBlueprintEditorModule.h"
#include "Templates/SharedPointer.h"
#include "Toolkits/IToolkit.h"
class FExtensibilityManager;
struct FAnimationGraphNodeFactory;
struct FAnimationGraphPinConnectionFactory;
struct FAnimationGraphPinFactory;
/**
* Animation Blueprint Editor module allows editing of Animation Blueprints
*/
class FAnimationBlueprintEditorModule : public IAnimationBlueprintEditorModule
{
public:
/**
* Called right after the module's DLL has been loaded and the module object has been created
*/
virtual void StartupModule();
/**
* Called before the module is unloaded, right before the module object is destroyed.
*/
virtual void ShutdownModule();
/** IAnimationBlueprintEditorModule interface */
virtual TSharedRef<class IAnimationBlueprintEditor> CreateAnimationBlueprintEditor(const EToolkitMode::Type Mode, const TSharedPtr< class IToolkitHost >& InitToolkitHost, class UAnimBlueprint* Blueprint) override;
virtual TArray<FAnimationBlueprintEditorToolbarExtender>& GetAllAnimationBlueprintEditorToolbarExtenders() { return AnimationBlueprintEditorToolbarExtenders; }
virtual void GetTypeActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const override;
virtual void GetInstanceActions(const UAnimBlueprint* InAnimBlueprint, FBlueprintActionDatabaseRegistrar& ActionRegistrar) const override;
/** Gets the extensibility managers for outside entities to extend this editor's menus and toolbars */
virtual TSharedPtr<FExtensibilityManager> GetMenuExtensibilityManager() override { return MenuExtensibilityManager; }
virtual TSharedPtr<FExtensibilityManager> GetToolBarExtensibilityManager() override { return ToolBarExtensibilityManager; }
virtual FOnGetCustomDebugObjects& OnGetCustomDebugObjects() override { return OnGetCustomDebugObjectsDelegate; }
private:
/** When a new AnimBlueprint is created, this will handle post creation work such as adding non-event default nodes */
void OnNewBlueprintCreated(class UBlueprint* InBlueprint);
private:
TSharedPtr<class FExtensibilityManager> MenuExtensibilityManager;
TSharedPtr<class FExtensibilityManager> ToolBarExtensibilityManager;
TArray<FAnimationBlueprintEditorToolbarExtender> AnimationBlueprintEditorToolbarExtenders;
TSharedPtr<FAnimationGraphNodeFactory> AnimGraphNodeFactory;
TSharedPtr<FAnimationGraphPinFactory> AnimGraphPinFactory;
TSharedPtr<FAnimationGraphPinConnectionFactory> AnimGraphPinConnectionFactory;
FOnGetCustomDebugObjects OnGetCustomDebugObjectsDelegate;
};