// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "Param/ParamType.h" #include "RigVMCore/RigVMStruct.h" #include "Templates/SubclassOf.h" #include "AnimNextVariablesTest.generated.h" class UAnimNextComponent; USTRUCT() struct FAnimNextParamTypeTestStruct { GENERATED_BODY() UPROPERTY() bool bBool = false; UPROPERTY() uint8 Uint8 = 0; UPROPERTY() int32 Int32 = 0; UPROPERTY() int64 Int64 = 0; UPROPERTY() float Float = 0.0f; UPROPERTY() double Double = 0.0; UPROPERTY() FName Name; UPROPERTY() FString String; UPROPERTY() FText Text; UPROPERTY() EPropertyBagContainerType Enum = EPropertyBagContainerType::None; UPROPERTY() FAnimNextParamType Struct; UPROPERTY() FVector Vector = FVector::ZeroVector; UPROPERTY() FTransform Transform; UPROPERTY() FQuat Quat = FQuat::Identity; UPROPERTY() TObjectPtr Object; UPROPERTY() TObjectPtr Class; UPROPERTY() TSubclassOf SubclassOf; UPROPERTY() TSoftObjectPtr SoftObjectPtr; UPROPERTY() TSoftClassPtr SoftClassPtr; UPROPERTY() TArray BoolArray; UPROPERTY() TArray Uint8Array; UPROPERTY() TArray Int32Array; UPROPERTY() TArray Int64Array; UPROPERTY() TArray FloatArray; UPROPERTY() TArray DoubleArray; UPROPERTY() TArray NameArray; UPROPERTY() TArray StringArray; UPROPERTY() TArray TextArray; UPROPERTY() TArray EnumArray; UPROPERTY() TArray StructArray; UPROPERTY() TArray VectorArray; UPROPERTY() TArray TransformArray; UPROPERTY() TArray QuatArray; UPROPERTY() TArray> ObjectArray; UPROPERTY() TArray> ClassArray; UPROPERTY() TArray> SubclassOfArray; UPROPERTY() TArray> SoftObjectPtrArray; UPROPERTY() TArray> SoftClassPtrArray; }; USTRUCT(meta=(Hidden)) struct FAnimNextTests_TestOperation : public FRigVMStructMutable { GENERATED_BODY() RIGVM_METHOD() virtual void Execute() override; UPROPERTY(meta=(Input)) int32 A = 0; UPROPERTY(meta=(Input)) int32 B = 0; UPROPERTY(meta=(Output)) int32 Result = 0; }; USTRUCT(meta=(Hidden)) struct FAnimNextTests_PrintResult : public FRigVMStructMutable { GENERATED_BODY() RIGVM_METHOD() virtual void Execute() override; UPROPERTY(meta=(Input)) int32 Result = 0; }; UCLASS() class UAnimNextTestFuncLib : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category=Test) static UAnimNextTestFuncLib* GetObj(UAnimNextComponent* InObj) { return GetMutableDefault(); } UFUNCTION(BlueprintCallable, Category=Test) int32 GetValueB() { return ValueB; } UFUNCTION(BlueprintCallable, Category=Test) static int32 GetValueC(UAnimNextComponent* InObj) { return GetDefault()->ValueC; } UPROPERTY() int32 ValueA = 23; UPROPERTY() int32 ValueB = 42; UPROPERTY() int32 ValueC = 12345; };