Remove serializegraph, keep serializenode
This commit is contained in:
@@ -672,72 +672,9 @@ TSharedRef<FJsonObject> MCPUtils::SerializeBlueprint(UBlueprint* BP)
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
TSharedRef<FJsonObject> NJ = MakeShared<FJsonObject>();
|
||||
|
||||
@@ -252,7 +252,6 @@ public:
|
||||
|
||||
// ----- Serialization -----
|
||||
static TSharedRef<FJsonObject> SerializeBlueprint(UBlueprint* BP);
|
||||
static TSharedPtr<FJsonObject> SerializeGraph(UEdGraph* Graph);
|
||||
static TSharedPtr<FJsonObject> SerializeNode(UEdGraphNode* Node);
|
||||
static TSharedPtr<FJsonObject> SerializePin(UEdGraphPin* Pin);
|
||||
static TSharedPtr<FJsonObject> SerializeMaterialExpression(UMaterialExpression* Expression);
|
||||
|
||||
Reference in New Issue
Block a user