Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Private/PropertyFunctions/StateTreeBooleanAlgebraPropertyFunctions.h
mikko mononen 54eb8e271f StateTree: Introduced PropertyFunctions (contributed) (take2)
- Added property functions which can be executed and chained during property binding to set values of properties

[CL 34087989 by mikko mononen in ue5-main branch]
2024-06-04 03:56:38 -04:00

61 lines
1.8 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "StateTreePropertyFunctionBase.h"
#include "StateTreeBooleanAlgebraPropertyFunctions.generated.h"
struct FStateTreeExecutionContext;
USTRUCT()
struct STATETREEMODULE_API FStateTreeBooleanOperationPropertyFunctionInstanceData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = Param)
bool bLeft = false;
UPROPERTY(EditAnywhere, Category = Param)
bool bRight = false;
UPROPERTY(EditAnywhere, Category = Output)
bool bResult = false;
};
/**
* Performs 'And' operation on two booleans.
*/
USTRUCT(DisplayName = "And")
struct STATETREEMODULE_API FStateTreeBooleanAndPropertyFunction : public FStateTreePropertyFunctionCommonBase
{
GENERATED_BODY()
using FInstanceDataType = FStateTreeBooleanOperationPropertyFunctionInstanceData;
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
virtual void Execute(FStateTreeExecutionContext& Context) const override;
#if WITH_EDITOR
virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
#endif
};
/**
* Performs 'Or' operation on two booleans.
*/
USTRUCT(DisplayName = "Or")
struct STATETREEMODULE_API FStateTreeBooleanOrPropertyFunction : public FStateTreePropertyFunctionCommonBase
{
GENERATED_BODY()
using FInstanceDataType = FStateTreeBooleanOperationPropertyFunctionInstanceData;
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
virtual void Execute(FStateTreeExecutionContext& Context) const override;
#if WITH_EDITOR
virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const;
#endif
};