Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Private/Considerations/StateTreeCommonConsiderations.cpp
jacob wang d0a9f7e6de [State Tree] Utility Selector Editor Representation First Pass
- Editor View and Operations(debugger support not yet)
- Basic Utility Consideration Base
- Built-in Float Parameter Consideration
- Basic Blueprint Support
#rb mikko.mononen

[CL 33665793 by jacob wang in ue5-main branch]
2024-05-15 14:50:35 -04:00

47 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Considerations/StateTreeCommonConsiderations.h"
#include "StateTreeExecutionContext.h"
#include "StateTreeNodeDescriptionHelpers.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(StateTreeCommonConsiderations)
#define LOCTEXT_NAMESPACE "StateTree"
#if WITH_EDITOR
FText FStateTreeFloatConsideration::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const
{
const FInstanceDataType* InstanceData = InstanceDataView.GetPtr<FInstanceDataType>();
check(InstanceData);
FText OptionalConstantKeywordText = FText::GetEmpty();
FText RawScoreOrPropertyPathText = BindingLookup.GetBindingSourceDisplayName(FStateTreePropertyPath(ID, GET_MEMBER_NAME_CHECKED(FInstanceDataType, RawScore)), Formatting);
if (RawScoreOrPropertyPathText.IsEmpty())
{
//using a constant value for the float param
OptionalConstantKeywordText = (Formatting == EStateTreeNodeFormatting::RichText)
? LOCTEXT("ConstantConsideration", "<s>Constant</>")
: LOCTEXT("ConstantConsideration", "Constant");
RawScoreOrPropertyPathText = FText::AsNumber(InstanceData->RawScore);
}
FText WithinValueRangeText = UE::StateTree::DescHelpers::GetWithinValueRangeText(ResponseCurve.RawScoreLowerBound, ResponseCurve.RawScoreUpperBound, Formatting);
return FText::Format(LOCTEXT("FloatParam", "{OptionalConstantKeyword} {RawScoreOrPropertyPath} {WithinValueRange}"),
OptionalConstantKeywordText,
RawScoreOrPropertyPathText,
WithinValueRangeText
);
}
#endif //WITH_EDITOR
float FStateTreeFloatConsideration::ComputeRawScore(FStateTreeExecutionContext& Context) const
{
const FInstanceDataType& InstanceData = Context.GetInstanceData(*this);
return InstanceData.RawScore;
}
#undef LOCTEXT_NAMESPACE