Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Private/PropertyFunctions/StateTreeIntervalPropertyFunctions.cpp
Ryan Hummer 4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00

38 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "PropertyFunctions/StateTreeIntervalPropertyFunctions.h"
#include "StateTreeExecutionContext.h"
#include "StateTreeNodeDescriptionHelpers.h"
#define LOCTEXT_NAMESPACE "StateTree"
void FStateTreeMakeIntervalPropertyFunction::Execute(FStateTreeExecutionContext& Context) const
{
FInstanceDataType& InstanceData = Context.GetInstanceData(*this);
InstanceData.Result = FFloatInterval(InstanceData.Min, InstanceData.Max);
}
#if WITH_EDITOR
FText FStateTreeMakeIntervalPropertyFunction::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting) const
{
const FInstanceDataType& InstanceData = InstanceDataView.Get<FInstanceDataType>();
FText MinValueText = BindingLookup.GetBindingSourceDisplayName(FStateTreePropertyPath(ID, GET_MEMBER_NAME_CHECKED(FInstanceDataType, Min)), Formatting);
if (MinValueText.IsEmpty())
{
MinValueText = UE::StateTree::DescHelpers::GetText(InstanceData.Min, Formatting);
}
FText MaxValueText = BindingLookup.GetBindingSourceDisplayName(FStateTreePropertyPath(ID, GET_MEMBER_NAME_CHECKED(FInstanceDataType, Max)), Formatting);
if (MaxValueText.IsEmpty())
{
MaxValueText = UE::StateTree::DescHelpers::GetText(InstanceData.Max, Formatting);
}
return UE::StateTree::DescHelpers::GetIntervalText(MinValueText, MaxValueText, Formatting);
}
#endif //WITH_EDITOR
#undef LOCTEXT_NAMESPACE