Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Private/Conditions/StateTreeObjectConditions.cpp
mikko mononen 2a196bac7c StateTree:
- Changed existing conditions to use the simpler instance data getter
- Added UObject based conditions
- Renamed condition file for consistency

#rb Mieszko.Zielinski
#preflight 6304879ca45b007ea268d917

[CL 21512046 by mikko mononen in ue5-main branch]
2022-08-23 13:04:52 -04:00

43 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Conditions/StateTreeObjectConditions.h"
#include "StateTreeExecutionContext.h"
#define LOCTEXT_NAMESPACE "StateTreeEditor"
//----------------------------------------------------------------------//
// FStateTreeCondition_ObjectIsValid
//----------------------------------------------------------------------//
bool FStateTreeObjectIsValidCondition::TestCondition(FStateTreeExecutionContext& Context) const
{
const InstanceDataType& InstanceData = Context.GetInstanceData<InstanceDataType>(*this);
const bool bResult = IsValid(InstanceData.Object);
return bResult ^ bInvert;
}
//----------------------------------------------------------------------//
// FStateTreeCondition_ObjectEquals
//----------------------------------------------------------------------//
bool FStateTreeObjectEqualsCondition::TestCondition(FStateTreeExecutionContext& Context) const
{
const InstanceDataType& InstanceData = Context.GetInstanceData<InstanceDataType>(*this);
const bool bResult = InstanceData.Left == InstanceData.Right;
return bResult ^ bInvert;
}
//----------------------------------------------------------------------//
// FStateTreeCondition_ObjectIsChildOfClass
//----------------------------------------------------------------------//
bool FStateTreeObjectIsChildOfClassCondition::TestCondition(FStateTreeExecutionContext& Context) const
{
const InstanceDataType& InstanceData = Context.GetInstanceData<InstanceDataType>(*this);
const bool bResult = InstanceData.Object && InstanceData.Class
&& InstanceData.Object->GetClass()->IsChildOf(InstanceData.Class);
return bResult ^ bInvert;
}
#undef LOCTEXT_NAMESPACE