Files
FLESH/Source/FLESHEditor/Public/DismembermentGraph/DismembermentGraphNodeFactory.h
2025-04-18 18:17:02 +08:00

52 lines
1.4 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "EdGraphUtilities.h"
class UDismembermentGraphNode;
class SDismembermentGraphNode;
/**
* Dismemberment graph node factory
* Used to create visual representations of dismemberment graph nodes
*/
class FDismembermentGraphNodeFactory : public FGraphPanelNodeFactory
{
public:
// Constructor
FDismembermentGraphNodeFactory();
FDismembermentGraphNodeFactory(UClass* InNodeClass, const FText& InDisplayName, const FText& InTooltip);
// FGraphPanelNodeFactory interface
virtual TSharedPtr<SGraphNode> CreateNode(UEdGraphNode* Node) const override;
// End of interface
private:
// Node class
UClass* NodeClass;
// Display name
FText DisplayName;
// Tooltip
FText Tooltip;
};
/**
* Dismemberment schema action - New node
* Used to create new nodes in the context menu
*/
class FDismembermentSchemaAction_NewNode : public FEdGraphSchemaAction
{
public:
// Constructor
FDismembermentSchemaAction_NewNode(const FText& InNodeCategory, const FText& InMenuDesc, const FText& InToolTip, const int32 InGrouping);
// Perform action
virtual UEdGraphNode* PerformAction(UEdGraph* ParentGraph, UEdGraphPin* FromPin, const FVector2D Location, bool bSelectNewNode = true) override;
// Node class
TSubclassOf<UDismembermentGraphNode> NodeClass;
};