const class UEdGraphSchema* UEdGraphPin::GetSchema() const { #if WITH_EDITOR auto OwnerNode = GetOwningNodeUnchecked(); return OwnerNode ? OwnerNode->GetSchema() : NULL; #else return NULL; #endif //WITH_EDITOR }
void FKCHandler_MathExpression::RegisterNets(FKismetFunctionContext& Context, UEdGraphNode* InNode) { FNodeHandlingFunctor::RegisterNets(Context, InNode); auto Node_MathExpression = CastChecked<UK2Node_MathExpression>(InNode); auto InnerEntryNode = Node_MathExpression->GetEntryNode(); auto InnerExitNode = Node_MathExpression->GetExitNode(); check(Node_MathExpression->BoundGraph && InnerEntryNode && InnerExitNode); for (auto InnerGraphNode : Node_MathExpression->BoundGraph->Nodes) { if (!InnerGraphNode || (InnerGraphNode == InnerEntryNode) || (InnerGraphNode == InnerExitNode)) { continue; } if (auto GetVarNode = Cast<UK2Node_VariableGet>(InnerGraphNode)) { auto VarHandler = GetVarNode->CreateNodeHandler(CompilerContext); if (ensure(VarHandler)) { VarHandler->RegisterNets(Context, GetVarNode); } continue; } for (auto Pin : InnerGraphNode->Pins) { // Register fake terms for InlineGeneratedValues if (Pin && (Pin->Direction == EEdGraphPinDirection::EGPD_Output) && Pin->LinkedTo.Num()) { auto Linked = Pin->LinkedTo[0]; auto LinkedOwnerNode = Linked ? Linked->GetOwningNodeUnchecked() : nullptr; if (LinkedOwnerNode && (InnerExitNode != LinkedOwnerNode)) { FBPTerminal* Term = new (Context.InlineGeneratedValues) FBPTerminal(); Term->CopyFromPin(Pin, Context.NetNameMap->MakeValidName(Pin)); Context.NetMap.Add(Pin, Term); } } // Register Literals if (Pin && (Pin->Direction == EEdGraphPinDirection::EGPD_Input) && !Pin->LinkedTo.Num()) { RegisterLiteral(Context, Pin); } } } }