#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 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 NodeClass; };