// ©2023 Batty Bovine Productions, LLC. All Rights Reserved. #include "EdComboActionGraphEdge.h" #include "EdComboActionGraphNode.h" #include "Nodes/ComboActionGraphEdge.h" void UEdComboActionGraphEdge::SetEdge(UComboActionGraphEdge *Edge) { this->ComboActionGraphEdge = Edge; } void UEdComboActionGraphEdge::AllocateDefaultPins() { UEdGraphPin* Inputs = this->CreatePin(EGPD_Input, TEXT("Edge"), FName(), TEXT("In")); Inputs->bHidden = true; UEdGraphPin* Outputs = this->CreatePin(EGPD_Output, TEXT("Edge"), FName(), TEXT("Out")); Outputs->bHidden = true; } FText UEdComboActionGraphEdge::GetNodeTitle(ENodeTitleType::Type TitleType) const { return Super::GetNodeTitle(TitleType); } void UEdComboActionGraphEdge::PinConnectionListChanged(UEdGraphPin *Pin) { if (Pin->LinkedTo.Num() == 0) { // Commit suicide; transitions must always have an input and output connection Modify(); // Our parent graph will have our graph in SubGraphs so needs to be modified to record that. if (UEdGraph *ParentGraph = GetGraph()) { ParentGraph->Modify(); } DestroyNode(); } } void UEdComboActionGraphEdge::PrepareForCopying() { this->ComboActionGraphEdge->Rename(nullptr, this, REN_DontCreateRedirectors | REN_DoNotDirty); } void UEdComboActionGraphEdge::CreateConnections(UEdComboActionGraphNode *Start, UEdComboActionGraphNode *End) { Pins[0]->Modify(); Pins[0]->LinkedTo.Empty(); Start->GetOutputPin()->Modify(); Pins[0]->MakeLinkTo(Start->GetOutputPin()); // This to next Pins[1]->Modify(); Pins[1]->LinkedTo.Empty(); End->GetInputPin()->Modify(); Pins[1]->MakeLinkTo(End->GetInputPin()); } UEdComboActionGraphNode *UEdComboActionGraphEdge::GetStartNode() { if (Pins[0]->LinkedTo.Num() > 0) { return Cast(Pins[0]->LinkedTo[0]->GetOwningNode()); } return nullptr; } UEdComboActionGraphNode *UEdComboActionGraphEdge::GetEndNode() { if (Pins[1]->LinkedTo.Num() > 0) { return Cast(Pins[1]->LinkedTo[0]->GetOwningNode()); } return nullptr; }