更新 Source/FLESH/Private/DismembermentGraph/DismembermentGraphBase.cpp
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
UDismembermentGraphBase::UDismembermentGraphBase()
|
||||
: bCompiled(false)
|
||||
{
|
||||
Layers = {TEXT("Bone"), TEXT("Organ"), TEXT("Skin")}; // Default layers
|
||||
LayerPatchData.Empty();
|
||||
}
|
||||
|
||||
void UDismembermentGraphBase::ClearGraph()
|
||||
@@ -12,6 +14,7 @@ void UDismembermentGraphBase::ClearGraph()
|
||||
// Clear all nodes
|
||||
Nodes.Empty();
|
||||
bCompiled = false;
|
||||
LayerPatchData.Empty();
|
||||
}
|
||||
|
||||
UEdGraphNode* UDismembermentGraphBase::AddNode(TSubclassOf<UEdGraphNode> NodeClass, const FVector2D& Position)
|
||||
@@ -23,11 +26,9 @@ UEdGraphNode* UDismembermentGraphBase::AddNode(TSubclassOf<UEdGraphNode> NodeCla
|
||||
// Set node position
|
||||
NewNode->NodePosX = Position.X;
|
||||
NewNode->NodePosY = Position.Y;
|
||||
|
||||
// Add to node list
|
||||
Nodes.Add(NewNode);
|
||||
}
|
||||
|
||||
return NewNode;
|
||||
}
|
||||
|
||||
@@ -40,11 +41,36 @@ void UDismembermentGraphBase::RemoveNode(UEdGraphNode* Node)
|
||||
}
|
||||
}
|
||||
|
||||
void UDismembermentGraphBase::CreateConnection(UEdGraphPin* A, UEdGraphPin* B)
|
||||
#if WITH_EDITOR
|
||||
// void UDismembermentGraphBase::CreateConnection(UEdGraphPin* A, UEdGraphPin* B)
|
||||
// {
|
||||
// if (A && B)
|
||||
// {
|
||||
// A->MakeLinkTo(B);
|
||||
// }
|
||||
// }
|
||||
#endif
|
||||
|
||||
FString UDismembermentGraphBase::SerializeGraph() const
|
||||
{
|
||||
// Create connection
|
||||
if (A && B)
|
||||
// Serialize the graph structure to a string (for debugging/versioning)
|
||||
FString Result = TEXT("Graph Nodes:\n");
|
||||
for (const TObjectPtr<UEdGraphNode>& Node : Nodes)
|
||||
{
|
||||
A->MakeLinkTo(B);
|
||||
if (Node)
|
||||
{
|
||||
Result += FString::Printf(TEXT("- %s at (%d, %d)\n"), *Node->GetName(), Node->NodePosX, Node->NodePosY);
|
||||
}
|
||||
}
|
||||
Result += TEXT("Layers:\n");
|
||||
for (const FName& Layer : Layers)
|
||||
{
|
||||
Result += FString::Printf(TEXT("- %s\n"), *Layer.ToString());
|
||||
}
|
||||
Result += TEXT("Patch Data:\n");
|
||||
for (const auto& Elem : LayerPatchData)
|
||||
{
|
||||
Result += FString::Printf(TEXT("- %s: %s\n"), *Elem.Key.ToString(), *Elem.Value);
|
||||
}
|
||||
return Result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user