Remove serializegraph, keep serializenode

This commit is contained in:
2026-03-10 13:20:25 -04:00
parent d0ba1bfad7
commit 9fa6bd4bb6
2 changed files with 0 additions and 64 deletions

View File

@@ -672,72 +672,9 @@ TSharedRef<FJsonObject> MCPUtils::SerializeBlueprint(UBlueprint* BP)
} }
J->SetArrayField(TEXT("interfaces"), Ifaces); J->SetArrayField(TEXT("interfaces"), Ifaces);
// Graphs
TArray<TSharedPtr<FJsonValue>> GraphArr;
TArray<UEdGraph*> AllGraphs;
BP->GetAllGraphs(AllGraphs);
for (UEdGraph* Graph : AllGraphs)
{
if (!Graph) continue;
TSharedPtr<FJsonObject> GJ = SerializeGraph(Graph);
if (GJ.IsValid())
GraphArr.Add(MakeShared<FJsonValueObject>(GJ.ToSharedRef()));
}
J->SetArrayField(TEXT("graphs"), GraphArr);
return J; return J;
} }
TSharedPtr<FJsonObject> MCPUtils::SerializeGraph(UEdGraph* Graph)
{
TSharedRef<FJsonObject> GJ = MakeShared<FJsonObject>();
GJ->SetStringField(TEXT("name"), Graph->GetName());
GJ->SetStringField(TEXT("schema"), Graph->Schema ? Graph->Schema->GetClass()->GetName() : TEXT("Unknown"));
// Detect animation graph subtypes
if (Cast<UAnimationStateMachineGraph>(Graph))
{
GJ->SetStringField(TEXT("graphType"), TEXT("StateMachine"));
// Find entry state by following entry node's output pin
for (UEdGraphNode* Node : Graph->Nodes)
{
if (UAnimStateEntryNode* EntryNode = Cast<UAnimStateEntryNode>(Node))
{
for (UEdGraphPin* Pin : EntryNode->Pins)
{
if (Pin->Direction == EGPD_Output && Pin->LinkedTo.Num() > 0)
{
UEdGraphNode* LinkedNode = Pin->LinkedTo[0]->GetOwningNode();
if (UAnimStateNode* StateNode = Cast<UAnimStateNode>(LinkedNode))
{
GJ->SetStringField(TEXT("entryState"), StateNode->GetStateName());
}
}
}
break;
}
}
}
else if (Cast<UAnimationGraph>(Graph))
{
GJ->SetStringField(TEXT("graphType"), TEXT("AnimGraph"));
}
else if (Cast<UAnimationTransitionGraph>(Graph))
{
GJ->SetStringField(TEXT("graphType"), TEXT("TransitionRule"));
}
TArray<TSharedPtr<FJsonValue>> Nodes;
for (UEdGraphNode* Node : Graph->Nodes)
{
if (!Node) continue;
TSharedPtr<FJsonObject> NJ = SerializeNode(Node);
if (NJ.IsValid())
Nodes.Add(MakeShared<FJsonValueObject>(NJ.ToSharedRef()));
}
GJ->SetArrayField(TEXT("nodes"), Nodes);
return GJ;
}
TSharedPtr<FJsonObject> MCPUtils::SerializeNode(UEdGraphNode* Node) TSharedPtr<FJsonObject> MCPUtils::SerializeNode(UEdGraphNode* Node)
{ {
TSharedRef<FJsonObject> NJ = MakeShared<FJsonObject>(); TSharedRef<FJsonObject> NJ = MakeShared<FJsonObject>();

View File

@@ -252,7 +252,6 @@ public:
// ----- Serialization ----- // ----- Serialization -----
static TSharedRef<FJsonObject> SerializeBlueprint(UBlueprint* BP); static TSharedRef<FJsonObject> SerializeBlueprint(UBlueprint* BP);
static TSharedPtr<FJsonObject> SerializeGraph(UEdGraph* Graph);
static TSharedPtr<FJsonObject> SerializeNode(UEdGraphNode* Node); static TSharedPtr<FJsonObject> SerializeNode(UEdGraphNode* Node);
static TSharedPtr<FJsonObject> SerializePin(UEdGraphPin* Pin); static TSharedPtr<FJsonObject> SerializePin(UEdGraphPin* Pin);
static TSharedPtr<FJsonObject> SerializeMaterialExpression(UMaterialExpression* Expression); static TSharedPtr<FJsonObject> SerializeMaterialExpression(UMaterialExpression* Expression);