Files
UnrealEngineUWP/Engine/Source/Editor/EnvironmentQueryEditor/Private/EnvironmentQueryGraphNode.cpp
Michael Schoell 0a41fb741e #summary Can search for nodes in the palette menu in Blueprints with both the native name and the localized name.
#add Added UEdGraphNode::GetNodeNativeTitle to return a native title for a node.
#add Added UEdGraphNode::GetNodeSearchTitle to return the native and localized title for a node, together, for searching.
#add Can hold "alt" over a node (in the graph panel, or the palette) to see the native name of the node.

#ttp 331252 - Blueprints: Editor: L10N: Blueprints need to consistently show localized node names and when searching need to search both the localized name and the native name

#codereview justin.sargent

[CL 2044506 by Michael Schoell in Main branch]
2014-04-23 18:30:37 -04:00

123 lines
2.6 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "EnvironmentQueryEditorPrivatePCH.h"
#include "ScopedTransaction.h"
UEnvironmentQueryGraphNode::UEnvironmentQueryGraphNode(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
, EnvQueryNodeClass(NULL)
, NodeInstance(NULL)
{
}
void UEnvironmentQueryGraphNode::PrepareForCopying()
{
if (NodeInstance)
{
// Temporarily take ownership of the node instance, so that it is not deleted when cutting
NodeInstance->Rename(NULL, this, REN_DontCreateRedirectors | REN_DoNotDirty );
}
}
void UEnvironmentQueryGraphNode::PostEditImport()
{
ResetNodeOwner();
}
void UEnvironmentQueryGraphNode::PostCopyNode()
{
ResetNodeOwner();
}
void UEnvironmentQueryGraphNode::ResetNodeOwner()
{
if (NodeInstance)
{
UBehaviorTree* BT = Cast<UBehaviorTree>(GetEnvironmentQueryGraph()->GetOuter());
NodeInstance->Rename(NULL, BT, REN_DontCreateRedirectors | REN_DoNotDirty);
}
}
FText UEnvironmentQueryGraphNode::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
return FText::GetEmpty();
}
FText UEnvironmentQueryGraphNode::GetDescription() const
{
return FText::GetEmpty();
}
UEdGraphPin* UEnvironmentQueryGraphNode::GetInputPin(int32 InputIndex) const
{
check(InputIndex >= 0);
for (int32 PinIndex = 0, FoundInputs = 0; PinIndex < Pins.Num(); PinIndex++)
{
if (Pins[PinIndex]->Direction == EGPD_Input)
{
if (InputIndex == FoundInputs)
{
return Pins[PinIndex];
}
else
{
FoundInputs++;
}
}
}
return NULL;
}
UEdGraphPin* UEnvironmentQueryGraphNode::GetOutputPin(int32 InputIndex) const
{
check(InputIndex >= 0);
for (int32 PinIndex = 0, FoundInputs = 0; PinIndex < Pins.Num(); PinIndex++)
{
if (Pins[PinIndex]->Direction == EGPD_Output)
{
if (InputIndex == FoundInputs)
{
return Pins[PinIndex];
}
else
{
FoundInputs++;
}
}
}
return NULL;
}
void UEnvironmentQueryGraphNode::AutowireNewNode(UEdGraphPin* FromPin)
{
Super::AutowireNewNode(FromPin);
if (FromPin != NULL)
{
if (GetSchema()->TryCreateConnection(FromPin, GetInputPin()))
{
FromPin->GetOwningNode()->NodeConnectionListChanged();
}
}
}
UEnvironmentQueryGraph* UEnvironmentQueryGraphNode::GetEnvironmentQueryGraph()
{
return CastChecked<UEnvironmentQueryGraph>(GetGraph());
}
void UEnvironmentQueryGraphNode::NodeConnectionListChanged()
{
GetEnvironmentQueryGraph()->UpdateAsset();
}
bool UEnvironmentQueryGraphNode::CanCreateUnderSpecifiedSchema(const UEdGraphSchema* DesiredSchema) const
{
return DesiredSchema->GetClass()->IsChildOf(UEdGraphSchema_EnvironmentQuery::StaticClass());
}