Files
UnrealEngineUWP/Engine/Source/Editor/BlueprintGraph/Classes/K2Node_CallArrayFunction.h
dan oconnor 9cd82d4683 Output wildcard pins can now connect to container types, similarly to how input pins can be. Override DoesOutputWildcardPinAcceptContainer to disable on a per-node basis
#rb Phillip.Kavan
#jira UE-87387


#ROBOMERGE-SOURCE: CL 11135923 via CL 11135931 via CL 11135937
#ROBOMERGE-BOT: (v640-11091645)

[CL 11135940 by dan oconnor in Main branch]
2020-01-28 15:53:07 -05:00

63 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "K2Node_CallFunction.h"
#include "K2Node_CallArrayFunction.generated.h"
struct FArrayPropertyPinCombo
{
UEdGraphPin* ArrayPin;
UEdGraphPin* ArrayPropPin;
FArrayPropertyPinCombo()
: ArrayPin(NULL)
, ArrayPropPin(NULL)
{}
};
UCLASS(MinimalAPI)
class UK2Node_CallArrayFunction : public UK2Node_CallFunction
{
GENERATED_UCLASS_BODY()
//~ Begin UEdGraphNode Interface
virtual void AllocateDefaultPins() override;
virtual void PostReconstructNode() override;
//~ End UEdGraphNode Interface
//~ Begin UK2Node Interface
virtual void NotifyPinConnectionListChanged(UEdGraphPin* Pin) override;
virtual bool DoesInputWildcardPinAcceptArray(const UEdGraphPin* Pin) const override { return false; }
virtual bool DoesOutputWildcardPinAcceptContainer(const UEdGraphPin* Pin) const override { return false; }
virtual void ConvertDeprecatedNode(UEdGraph* Graph, bool bOnlySafeChanges) override;
//~ End UK2Node Interface
/** Retrieves the target pin for the function */
BLUEPRINTGRAPH_API UEdGraphPin* GetTargetArrayPin() const;
/**
* Retrieves the array pins and their property pins as a combo-struct
*
* @param OutArrayPinInfo The pins and their property pins will be added to this array
*/
BLUEPRINTGRAPH_API void GetArrayPins(TArray< FArrayPropertyPinCombo >& OutArrayPinInfo ) const;
/**
* Checks if the passed in property is a wildcard property
*
* @param InArrayFunction The array function to check
* @param InProperty Property to examine to see if it is marked in metadata as a wildcard
*
* @return TRUE if the property is a wildcard.
*/
BLUEPRINTGRAPH_API static bool IsWildcardProperty(UFunction* InArrayFunction, const FProperty* InProperty);
void GetArrayTypeDependentPins(TArray<UEdGraphPin*>& OutPins) const;
void PropagateArrayTypeInfo(const UEdGraphPin* SourcePin);
};