Files
2025-05-18 13:04:45 +08:00

74 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Nodes/SceneStateTransitionResultNode.h"
#include "SceneStateTransitionGraphSchema.h"
#include "SceneStateTransitionOptionalPinManager.h"
#include "GraphEditorSettings.h"
#define LOCTEXT_NAMESPACE "SceneStateTransitionResultNode"
FString USceneStateTransitionResultNode::GetDescriptiveCompiledName() const
{
return FString::Printf(TEXT("Result_%d"), GetFName().GetNumber());
}
bool USceneStateTransitionResultNode::CanCreateUnderSpecifiedSchema(const UEdGraphSchema* InSchema) const
{
return InSchema && InSchema->IsA<USceneStateTransitionGraphSchema>();
}
void USceneStateTransitionResultNode::AllocateDefaultPins()
{
using namespace UE::SceneState::Graph;
Super::AllocateDefaultPins();
FStructProperty* StructProperty = FindFProperty<FStructProperty>(GetClass(), GET_MEMBER_NAME_CHECKED(USceneStateTransitionResultNode, Result));
TArray<FOptionalPinFromProperty> ShowPinForProperties;
UObject* NodeDefaults = GetArchetype();
// FOptionalPinManager by default exposes all pins
FTransitionOptionalPinManager OptionalPinManager;
OptionalPinManager.RebuildPropertyList(ShowPinForProperties, StructProperty->Struct);
OptionalPinManager.CreateVisiblePins(ShowPinForProperties
, StructProperty->Struct
, EGPD_Input
, this
, StructProperty->ContainerPtrToValuePtr<uint8>(this)
, NodeDefaults ? StructProperty->ContainerPtrToValuePtr<uint8>(NodeDefaults) : nullptr);
}
bool USceneStateTransitionResultNode::CanUserDeleteNode() const
{
return false;
}
bool USceneStateTransitionResultNode::CanDuplicateNode() const
{
return false;
}
FLinearColor USceneStateTransitionResultNode::GetNodeTitleColor() const
{
return GetDefault<UGraphEditorSettings>()->ResultNodeTitleColor;
}
FText USceneStateTransitionResultNode::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
return LOCTEXT("Title", "Result");
}
FText USceneStateTransitionResultNode::GetTooltipText() const
{
return LOCTEXT("Tooltip", "This expression is evaluated to determine if the state transition can be taken");
}
bool USceneStateTransitionResultNode::IsNodeRootSet() const
{
return true;
}
#undef LOCTEXT_NAMESPACE