void FKCHandler_VariableSet::Compile(FKismetFunctionContext& Context, UEdGraphNode* Node) { // SubCategory is an object type or "" for the stack frame, default scope is Self // Each input pin is the name of a variable // Each input pin represents an assignment statement for (int32 PinIndex = 0; PinIndex < Node->Pins.Num(); ++PinIndex) { UEdGraphPin* Pin = Node->Pins[PinIndex]; if (CompilerContext.GetSchema()->IsMetaPin(*Pin)) { } else if (Pin->Direction == EGPD_Input) { InnerAssignment(Context, Node, Pin, Pin); } else { CompilerContext.MessageLog.Error(*FString::Printf(*LOCTEXT("ExpectedOnlyInputPins_Error", "Expected only input pins on @@ but found @@").ToString()), Node, Pin); } } // Generate the output impulse from this node GenerateSimpleThenGoto(Context, *Node); }
virtual void Compile(FKismetFunctionContext& Context, UEdGraphNode* Node) override { auto PureAssignmentNode = CastChecked<UK2Node_PureAssignmentStatement>(Node); auto VariablePin = PureAssignmentNode->GetVariablePin(); auto ValuePin = PureAssignmentNode->GetValuePin(); InnerAssignment(Context, Node, VariablePin, ValuePin); }
virtual void Compile(FKismetFunctionContext& Context, UEdGraphNode* Node) override { UK2Node_VariableSetRef* VarRefNode = CastChecked<UK2Node_VariableSetRef>(Node); UEdGraphPin* VarTargetPin = VarRefNode->GetTargetPin(); UEdGraphPin* ValuePin = VarRefNode->GetValuePin(); InnerAssignment(Context, Node, VarTargetPin, ValuePin); // Generate the output impulse from this node GenerateSimpleThenGoto(Context, *Node); }