Files
UnrealEngineUWP/Engine/Source/Editor/BlueprintGraph/Classes/K2Node_FunctionEntry.h
Michael Schoell ec5aaa577c Functions correctly inherit purity in Blueprints and will update to reflect the current purity state of the inherited function.
Made accessors to get the Function Entry's flags for the generated UFunction and for retrieval of the final skeleton class's UFunction's flags.

#jira UE-17804 - Overridden functions in Child Blueprints cannot be converted to/from pure functions

[CL 2635959 by Michael Schoell in Main branch]
2015-07-28 16:17:47 -04:00

84 lines
3.0 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "K2Node_FunctionTerminator.h"
#include "K2Node_FunctionEntry.generated.h"
UCLASS(MinimalAPI)
class UK2Node_FunctionEntry : public UK2Node_FunctionTerminator
{
GENERATED_UCLASS_BODY()
/** If specified, the function that is created for this entry point will have this name. Otherwise, it will have the function signature's name */
UPROPERTY()
FName CustomGeneratedFunctionName;
/** Function metadata */
UPROPERTY()
struct FKismetUserDeclaredFunctionMetadata MetaData;
/** Array of local variables to be added to generated function */
UPROPERTY()
TArray<struct FBPVariableDescription> LocalVariables;
/** Whether or not to enforce const-correctness for const function overrides */
UPROPERTY()
bool bEnforceConstCorrectness;
// Begin UObject interface
virtual void Serialize(FArchive& Ar) override;
// End of UObject interface
// Begin UEdGraphNode interface
virtual void AllocateDefaultPins() override;
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
virtual bool CanUserDeleteNode() const override { return false; }
virtual bool IsDeprecated() const override;
virtual FString GetDeprecationMessage() const override;
virtual FText GetTooltipText() const override;
// End UEdGraphNode interface
// Begin UK2Node interface
virtual bool DrawNodeAsEntry() const override { return true; }
virtual class FNodeHandlingFunctor* CreateNodeHandler(class FKismetCompilerContext& CompilerContext) const override;
virtual void GetRedirectPinNames(const UEdGraphPin& Pin, TArray<FString>& RedirectPinNames) const override;
virtual void ExpandNode(class FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph) override;
// End UK2Node interface
// Begin UK2Node_EditablePinBase interface
virtual bool CanUseRefParams() const override { return true; }
// End UK2Node_EditablePinBase interface
// Begin K2Node_FunctionTerminator interface
virtual bool CanCreateUserDefinedPin(const FEdGraphPinType& InPinType, EEdGraphPinDirection InDesiredDirection, FText& OutErrorMessage) override;
virtual UEdGraphPin* CreatePinFromUserDefinition(const TSharedPtr<FUserPinInfo> NewPinInfo) override;
// End K2Node_FunctionTerminator interface
// Removes an output pin from the node
BLUEPRINTGRAPH_API void RemoveOutputPin(UEdGraphPin* PinToRemove);
// Returns pin for the automatically added WorldContext parameter (used only by BlueprintFunctionLibrary).
BLUEPRINTGRAPH_API UEdGraphPin* GetAutoWorldContextPin() const;
/** Retrieves the function flags from the UFunction that this function entry node represents */
BLUEPRINTGRAPH_API int32 GetFunctionFlags() const;
/** Retrieves the extra flags set on this node. */
BLUEPRINTGRAPH_API int32 GetExtraFlags(struct FKismetFunctionContext& CompilerContext) const
{
return ExtraFlags;
}
/** Set the extra flags on this node */
BLUEPRINTGRAPH_API void SetExtraFlags(int32 InFlags)
{
ExtraFlags = InFlags;
}
protected:
/** Any extra flags that the function may need */
UPROPERTY()
int32 ExtraFlags;
};