Пример #1
0
FReply SGraphNodeK2Sequence::OnAddPin()
{
	if (UK2Node_ExecutionSequence* SequenceNode = Cast<UK2Node_ExecutionSequence>(GraphNode))
	{
		SequenceNode->AddPinToExecutionNode();
		UpdateGraphNode();
		GraphNode->GetGraph()->NotifyGraphChanged();
	}
	else if (UK2Node_MakeArray* MakeArrayNode = Cast<UK2Node_MakeArray>(GraphNode))
	{
		MakeArrayNode->AddInputPin();
		UpdateGraphNode();
		GraphNode->GetGraph()->NotifyGraphChanged();
	}
	else if (UK2Node_CommutativeAssociativeBinaryOperator* OperatorNode = Cast<UK2Node_CommutativeAssociativeBinaryOperator>(GraphNode))
	{
		OperatorNode->AddInputPin();
		UpdateGraphNode();
		GraphNode->GetGraph()->NotifyGraphChanged();
	}
	else if (UK2Node_DoOnceMultiInput* DoOnceMultiNode = Cast<UK2Node_DoOnceMultiInput>(GraphNode))
	{
		DoOnceMultiNode->AddInputPin();
		UpdateGraphNode();
		GraphNode->GetGraph()->NotifyGraphChanged();
	}

	return FReply::Handled();
}
void SGraphNodeDocumentation::Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime )
{
	if( !bUserIsDragging )
	{
		ChildWidgetVisibility = EVisibility::HitTestInvisible;
		FVector2D LocalMouseCoordinates = AllottedGeometry.AbsoluteToLocal( FSlateApplication::Get().GetCursorPos() );

		EResizableWindowZone CurrMouseZone = FindMouseZone( LocalMouseCoordinates );
		
		if( CurrMouseZone == CRWZ_InWindow )
		{
			ChildWidgetVisibility = EVisibility::Visible;
		}
	}
	// Check Cached Links to determine if we need to update the documention link/excerpt
	if( CachedDocumentationLink != GraphNode->GetDocumentationLink() ||
		CachedDocumentationExcerpt != GraphNode->GetDocumentationExcerptName())
	{
		GraphNode->NodeWidth = 0.f;
		GraphNode->NodeHeight = 0.f;
		UpdateGraphNode();
	}

	SGraphNodeResizable::Tick( AllottedGeometry, InCurrentTime, InDeltaTime );
}
void SGraphNodeStateMachineInstance::Construct(const FArguments& InArgs, UAnimGraphNode_StateMachineBase* InNode)
{
	GraphNode = InNode;

	SetCursor(EMouseCursor::CardinalCross);

	UpdateGraphNode();
}
Пример #4
0
void SGraphNodeK2Sequence::Construct( const FArguments& InArgs, UK2Node* InNode )
{
	GraphNode = InNode;

	SetCursor( EMouseCursor::CardinalCross );

	UpdateGraphNode();
}
void SGraphNode_MultiCompareGameplayTag::Construct(const FArguments& InArgs, UGameplayTagsK2Node_MultiCompareBase* InNode)
{
	GraphNode = InNode;

	SetCursor(EMouseCursor::CardinalCross);

	UpdateGraphNode();
	CreateOutputSideRemoveButton(RightNodeBox);
}
void SGraphNodeDocumentation::Construct( const FArguments& InArgs, UEdGraphNode* InNode )
{
	GraphNode = InNode;

	// Set up animation
	{
		ZoomCurve = SpawnAnim.AddCurve( 0, 0.1f );
		FadeCurve = SpawnAnim.AddCurve( 0.15f, 0.15f );
	}
	UserSize.X = InNode->NodeWidth;
	UserSize.Y = InNode->NodeHeight;
	bUserIsDragging = false;
	UpdateGraphNode();
}
FReply SGraphNode_MultiCompareGameplayTag::OnAddPin()
{
	UGameplayTagsK2Node_MultiCompareBase* CompareNode = CastChecked<UGameplayTagsK2Node_MultiCompareBase>(GraphNode);

	const FScopedTransaction Transaction(NSLOCTEXT("CompareNode", "AddExecutionPin", "Add Execution Pin"));
	CompareNode->Modify();

	CompareNode->AddPin();
	CompareNode->ReconstructNode();
	FBlueprintEditorUtils::MarkBlueprintAsModified(CompareNode->GetBlueprint());

	UpdateGraphNode();
	GraphNode->GetGraph()->NotifyGraphChanged();

	return FReply::Handled();
}
void SGraphNodeK2CreateDelegate::Construct( const FArguments& InArgs, UK2Node* InNode )
{
	GraphNode = InNode;
	UpdateGraphNode();
}