2014-12-07 19:09:38 -05:00
|
|
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
#include "BlueprintGraphPrivatePCH.h"
|
|
|
|
|
#include "StructMemberNodeHandlers.h"
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// UK2Node_StructMemberGet
|
|
|
|
|
|
2014-04-23 18:30:37 -04:00
|
|
|
#define LOCTEXT_NAMESPACE "K2Node"
|
|
|
|
|
|
2014-10-14 10:29:11 -04:00
|
|
|
UK2Node_StructMemberGet::UK2Node_StructMemberGet(const FObjectInitializer& ObjectInitializer)
|
|
|
|
|
: Super(ObjectInitializer)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UK2Node_StructMemberGet::PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent)
|
|
|
|
|
{
|
|
|
|
|
FName PropertyName = (PropertyChangedEvent.Property != NULL) ? PropertyChangedEvent.Property->GetFName() : NAME_None;
|
|
|
|
|
|
|
|
|
|
if ((PropertyName == TEXT("bShowPin")))
|
|
|
|
|
{
|
|
|
|
|
GetSchema()->ReconstructNode(*this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Super::PostEditChangeProperty(PropertyChangedEvent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UK2Node_StructMemberGet::AllocateDefaultPins()
|
|
|
|
|
{
|
|
|
|
|
//@TODO: Create a context pin
|
|
|
|
|
|
|
|
|
|
// Display any currently visible optional pins
|
|
|
|
|
{
|
|
|
|
|
FStructOperationOptionalPinManager OptionalPinManager;
|
|
|
|
|
OptionalPinManager.RebuildPropertyList(ShowPinForProperties, StructType);
|
|
|
|
|
OptionalPinManager.CreateVisiblePins(ShowPinForProperties, StructType, EGPD_Output, this);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UK2Node_StructMemberGet::AllocatePinsForSingleMemberGet(FName MemberName)
|
|
|
|
|
{
|
|
|
|
|
//@TODO: Create a context pin
|
|
|
|
|
|
|
|
|
|
// Updater for subclasses that allow hiding pins
|
|
|
|
|
struct FSingleVariablePinManager : public FOptionalPinManager
|
|
|
|
|
{
|
|
|
|
|
FName MatchName;
|
|
|
|
|
|
|
|
|
|
FSingleVariablePinManager(FName InMatchName)
|
|
|
|
|
: MatchName(InMatchName)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// FOptionalPinsUpdater interface
|
2014-06-13 06:14:46 -04:00
|
|
|
virtual void GetRecordDefaults(UProperty* TestProperty, FOptionalPinFromProperty& Record) const override
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
Record.bCanToggleVisibility = false;
|
|
|
|
|
Record.bShowPin = TestProperty->GetFName() == MatchName;
|
|
|
|
|
}
|
|
|
|
|
// End of FOptionalPinsUpdater interface
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Display any currently visible optional pins
|
|
|
|
|
{
|
|
|
|
|
FSingleVariablePinManager PinManager(MemberName);
|
|
|
|
|
PinManager.RebuildPropertyList(ShowPinForProperties, StructType);
|
|
|
|
|
PinManager.CreateVisiblePins(ShowPinForProperties, StructType, EGPD_Output, this);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-03 18:14:09 -04:00
|
|
|
FText UK2Node_StructMemberGet::GetTooltipText() const
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-04-02 11:16:23 -04:00
|
|
|
if (CachedTooltip.IsOutOfDate(this))
|
2014-09-03 18:17:44 -04:00
|
|
|
{
|
|
|
|
|
FFormatNamedArguments Args;
|
|
|
|
|
Args.Add(TEXT("VariableName"), FText::FromString(GetVarNameString()));
|
|
|
|
|
// FText::Format() is slow, so we cache this to save on performance
|
2015-04-02 11:16:23 -04:00
|
|
|
CachedTooltip.SetCachedText(FText::Format(LOCTEXT("K2Node_StructMemberGet_Tooltip", "Get member variables of {VariableName}"), Args), this);
|
2014-09-03 18:17:44 -04:00
|
|
|
}
|
|
|
|
|
return CachedTooltip;
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
2014-04-23 18:30:37 -04:00
|
|
|
FText UK2Node_StructMemberGet::GetNodeTitle(ENodeTitleType::Type TitleType) const
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-04-02 11:16:23 -04:00
|
|
|
if (CachedNodeTitle.IsOutOfDate(this))
|
2014-09-02 19:08:09 -04:00
|
|
|
{
|
|
|
|
|
FFormatNamedArguments Args;
|
|
|
|
|
Args.Add(TEXT("VariableName"), FText::FromString(GetVarNameString()));
|
|
|
|
|
// FText::Format() is slow, so we cache this to save on performance
|
2015-04-02 11:16:23 -04:00
|
|
|
CachedNodeTitle.SetCachedText(FText::Format(LOCTEXT("GetMembersInVariable", "Get members in {VariableName}"), Args), this);
|
2014-09-02 19:08:09 -04:00
|
|
|
}
|
|
|
|
|
return CachedNodeTitle;
|
2014-04-23 18:30:37 -04:00
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
FNodeHandlingFunctor* UK2Node_StructMemberGet::CreateNodeHandler(FKismetCompilerContext& CompilerContext) const
|
|
|
|
|
{
|
|
|
|
|
return new FKCHandler_StructMemberVariableGet(CompilerContext);
|
|
|
|
|
}
|
2014-04-23 18:30:37 -04:00
|
|
|
|
|
|
|
|
#undef LOCTEXT_NAMESPACE
|