Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph/Public/IClassVariableCreator.h
thomas sarkanen 74bb8c17ca Fix property access nodes creating and using an incorrect internal property type
Previously there was no checking to see whether a variable that was created actually exists already, which could cause collisions.
Also fixed issue where connecting to a wildcard pin would mean that the output pin always stayed a wildcard.

#jira UE-103473 - Assert using Property Access pitch and yaw AimRotationDelta float variables for AimOffset
#jira UE-103470 - AnimBP Property Access node compile error accessing different variable types
#rb Jurre.deBaare

#ROBOMERGE-SOURCE: CL 15406686 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15406701 by thomas sarkanen in ue5-main branch]
2021-02-15 10:47:36 -04:00

42 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "IClassVariableCreator.generated.h"
class FKismetCompilerContext;
class FProperty;
struct FEdGraphPinType;
/** Context passed to IClassVariableCreator::CreateClassVariablesFromBlueprint */
class IAnimBlueprintVariableCreationContext
{
public:
/** Create a class variable in the current class. Note that no name confick resolution is performed, if a unique name is needed, use CreateUniqueVariable */
virtual FProperty* CreateVariable(const FName Name, const FEdGraphPinType& Type) = 0;
/** Create a uniquely named variable corresponding to an object in the current class. */
virtual FProperty* CreateUniqueVariable(UObject* InForObject, const FEdGraphPinType& Type) = 0;
};
UINTERFACE(MinimalAPI)
class UClassVariableCreator : public UInterface
{
GENERATED_BODY()
};
class IClassVariableCreator
{
GENERATED_BODY()
public:
/**
* Implement this in a graph node and the anim BP compiler will call this expecting to generate
* class variables.
* @param InVariableCreator The variable creation context for the current BP compilation
*/
virtual void CreateClassVariablesFromBlueprint(IAnimBlueprintVariableCreationContext& InCreationContext) = 0;
};