Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Public/Conditions/StateTreeObjectConditions.h
henrik karlsson 9a1d5b1ad4 [Engine/Plugins]
* Ran IWYU on ~170 plugins to remove includes not needed. Public api still keep old includes inside #if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_2

#preflight 63d09351574ab9cae4670216
#rb none

[CL 23844750 by henrik karlsson in ue5-main branch]
2023-01-25 02:42:36 -05:00

108 lines
3.2 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "StateTreeConditionBase.h"
#include "StateTreeObjectConditions.generated.h"
USTRUCT()
struct STATETREEMODULE_API FStateTreeObjectIsValidConditionInstanceData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = Input)
TObjectPtr<UObject> Object = nullptr;
};
/**
* Condition testing if specified object is valid.
*/
USTRUCT(DisplayName = "Object Is Valid", Category = "Object")
struct STATETREEMODULE_API FStateTreeObjectIsValidCondition : public FStateTreeConditionCommonBase
{
GENERATED_BODY()
using FInstanceDataType = FStateTreeObjectIsValidConditionInstanceData;
FStateTreeObjectIsValidCondition() = default;
explicit FStateTreeObjectIsValidCondition(const EStateTreeCompare InInverts)
: bInvert(InInverts == EStateTreeCompare::Invert)
{}
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
virtual bool TestCondition(FStateTreeExecutionContext& Context) const override;
UPROPERTY(EditAnywhere, Category = Parameter)
bool bInvert = false;
};
USTRUCT()
struct STATETREEMODULE_API FStateTreeObjectEqualsConditionInstanceData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UObject> Left = nullptr;
UPROPERTY(EditAnywhere, Category = "Parameter")
TObjectPtr<UObject> Right = nullptr;
};
/**
* Condition testing if two object pointers point to the same object.
*/
USTRUCT(DisplayName = "Object Equals", Category = "Object")
struct STATETREEMODULE_API FStateTreeObjectEqualsCondition : public FStateTreeConditionCommonBase
{
GENERATED_BODY()
using FInstanceDataType = FStateTreeObjectEqualsConditionInstanceData;
FStateTreeObjectEqualsCondition() = default;
explicit FStateTreeObjectEqualsCondition(const EStateTreeCompare InInverts)
: bInvert(InInverts == EStateTreeCompare::Invert)
{}
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
virtual bool TestCondition(FStateTreeExecutionContext& Context) const override;
UPROPERTY(EditAnywhere, Category = "Parameter")
bool bInvert = false;
};
USTRUCT()
struct STATETREEMODULE_API FStateTreeObjectIsChildOfClassConditionInstanceData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UObject> Object = nullptr;
UPROPERTY(EditAnywhere, Category = "Parameter")
TObjectPtr<UClass> Class = nullptr;
};
/**
* Condition testing if object is child of specified class.
*/
USTRUCT(DisplayName = "Object Class Is", Category = "Object")
struct STATETREEMODULE_API FStateTreeObjectIsChildOfClassCondition : public FStateTreeConditionCommonBase
{
GENERATED_BODY()
using FInstanceDataType = FStateTreeObjectIsChildOfClassConditionInstanceData;
FStateTreeObjectIsChildOfClassCondition() = default;
explicit FStateTreeObjectIsChildOfClassCondition(const EStateTreeCompare InInverts)
: bInvert(InInverts == EStateTreeCompare::Invert)
{}
virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); }
virtual bool TestCondition(FStateTreeExecutionContext& Context) const override;
UPROPERTY(EditAnywhere, Category = "Parameter")
bool bInvert = false;
};