154 lines
4.9 KiB
C
154 lines
4.9 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "StateTreePropertyFunctionBase.h"
|
|
#include "StateTreeFloatPropertyFunctions.generated.h"
|
|
|
|
#define UE_API STATETREEMODULE_API
|
|
|
|
struct FStateTreeExecutionContext;
|
|
|
|
USTRUCT()
|
|
struct FStateTreeFloatCombinaisonPropertyFunctionInstanceData
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
float Left = 0.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
float Right = 0.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Output)
|
|
float Result = 0.f;
|
|
};
|
|
|
|
/**
|
|
* Add two floats.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Add", Category = "Math|Float"))
|
|
struct FStateTreeAddFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeFloatCombinaisonPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
/**
|
|
* Subtract right float from left float.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Subtract", Category = "Math|Float"))
|
|
struct FStateTreeSubtractFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeFloatCombinaisonPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
/**
|
|
* Multiply the two given float.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Multiply", Category = "Math|Float"))
|
|
struct FStateTreeMultiplyFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeFloatCombinaisonPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
/**
|
|
* Divide left float by right float.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Divide", Category = "Math|Float"))
|
|
struct FStateTreeDivideFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeFloatCombinaisonPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
USTRUCT()
|
|
struct FStateTreeSingleFloatPropertyFunctionInstanceData
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
float Input = 0.f;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Output)
|
|
float Result = 0.f;
|
|
};
|
|
|
|
/**
|
|
* Invert the given float.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Invert", Category = "Math|Float"))
|
|
struct FStateTreeInvertFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeSingleFloatPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
/**
|
|
* Gives the absolute value of the given float.
|
|
*/
|
|
USTRUCT(meta=(DisplayName = "Absolute", Category = "Math|Float"))
|
|
struct FStateTreeAbsoluteFloatPropertyFunction : public FStateTreePropertyFunctionCommonBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
using FInstanceDataType = FStateTreeSingleFloatPropertyFunctionInstanceData;
|
|
|
|
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
|
|
|
|
UE_API virtual void Execute(FStateTreeExecutionContext& Context) const override;
|
|
|
|
#if WITH_EDITOR
|
|
UE_API virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
|
|
#endif
|
|
};
|
|
|
|
#undef UE_API
|