更新 Source/FLESH/Private/DismembermentGraph/DismembermentGraphBase.cpp
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
UDismembermentGraphBase::UDismembermentGraphBase()
|
UDismembermentGraphBase::UDismembermentGraphBase()
|
||||||
: bCompiled(false)
|
: bCompiled(false)
|
||||||
{
|
{
|
||||||
|
Layers = {TEXT("Bone"), TEXT("Organ"), TEXT("Skin")}; // Default layers
|
||||||
|
LayerPatchData.Empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UDismembermentGraphBase::ClearGraph()
|
void UDismembermentGraphBase::ClearGraph()
|
||||||
@@ -12,6 +14,7 @@ void UDismembermentGraphBase::ClearGraph()
|
|||||||
// Clear all nodes
|
// Clear all nodes
|
||||||
Nodes.Empty();
|
Nodes.Empty();
|
||||||
bCompiled = false;
|
bCompiled = false;
|
||||||
|
LayerPatchData.Empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
UEdGraphNode* UDismembermentGraphBase::AddNode(TSubclassOf<UEdGraphNode> NodeClass, const FVector2D& Position)
|
UEdGraphNode* UDismembermentGraphBase::AddNode(TSubclassOf<UEdGraphNode> NodeClass, const FVector2D& Position)
|
||||||
@@ -23,11 +26,9 @@ UEdGraphNode* UDismembermentGraphBase::AddNode(TSubclassOf<UEdGraphNode> NodeCla
|
|||||||
// Set node position
|
// Set node position
|
||||||
NewNode->NodePosX = Position.X;
|
NewNode->NodePosX = Position.X;
|
||||||
NewNode->NodePosY = Position.Y;
|
NewNode->NodePosY = Position.Y;
|
||||||
|
|
||||||
// Add to node list
|
// Add to node list
|
||||||
Nodes.Add(NewNode);
|
Nodes.Add(NewNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 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
|
// Serialize the graph structure to a string (for debugging/versioning)
|
||||||
if (A && B)
|
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