2022-09-28 01:06:15 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2022-08-23 13:04:52 -04:00
|
|
|
|
|
|
|
|
#include "Conditions/StateTreeObjectConditions.h"
|
|
|
|
|
#include "StateTreeExecutionContext.h"
|
|
|
|
|
|
2022-09-28 01:06:15 -04:00
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(StateTreeObjectConditions)
|
|
|
|
|
|
2022-08-23 13:04:52 -04:00
|
|
|
#define LOCTEXT_NAMESPACE "StateTreeEditor"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
// FStateTreeCondition_ObjectIsValid
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
|
|
|
|
|
bool FStateTreeObjectIsValidCondition::TestCondition(FStateTreeExecutionContext& Context) const
|
|
|
|
|
{
|
2022-09-29 20:26:53 -04:00
|
|
|
const FInstanceDataType& InstanceData = Context.GetInstanceData(*this);
|
2022-08-23 13:04:52 -04:00
|
|
|
const bool bResult = IsValid(InstanceData.Object);
|
|
|
|
|
return bResult ^ bInvert;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
// FStateTreeCondition_ObjectEquals
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
|
|
|
|
|
bool FStateTreeObjectEqualsCondition::TestCondition(FStateTreeExecutionContext& Context) const
|
|
|
|
|
{
|
2022-09-29 20:26:53 -04:00
|
|
|
const FInstanceDataType& InstanceData = Context.GetInstanceData(*this);
|
2022-08-23 13:04:52 -04:00
|
|
|
const bool bResult = InstanceData.Left == InstanceData.Right;
|
|
|
|
|
return bResult ^ bInvert;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
// FStateTreeCondition_ObjectIsChildOfClass
|
|
|
|
|
//----------------------------------------------------------------------//
|
|
|
|
|
|
|
|
|
|
bool FStateTreeObjectIsChildOfClassCondition::TestCondition(FStateTreeExecutionContext& Context) const
|
|
|
|
|
{
|
2022-09-29 20:26:53 -04:00
|
|
|
const FInstanceDataType& InstanceData = Context.GetInstanceData(*this);
|
2022-08-23 13:04:52 -04:00
|
|
|
const bool bResult = InstanceData.Object && InstanceData.Class
|
|
|
|
|
&& InstanceData.Object->GetClass()->IsChildOf(InstanceData.Class);
|
|
|
|
|
return bResult ^ bInvert;
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-28 01:06:15 -04:00
|
|
|
#undef LOCTEXT_NAMESPACE
|