Files
UnrealEngineUWP/Engine/Source/Editor/SubobjectDataInterface/Private/InheritedSubobjectDataFactory.cpp

31 lines
1.0 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#include "InheritedSubobjectDataFactory.h"
#include "InheritedSubobjectData.h"
#include "Engine/SCS_Node.h" // #TODO_BH We need to remove this when the actual subobject refactor happens
TSharedPtr<FSubobjectData> FInheritedSubobjectDataFactory::CreateSubobjectData(const FCreateSubobjectParams& Params)
{
return TSharedPtr<FInheritedSubobjectData>(new FInheritedSubobjectData(Params.Context, Params.ParentHandle, Params.bIsInheritedSCS));
}
bool FInheritedSubobjectDataFactory::ShouldCreateSubobjectData(const FCreateSubobjectParams& Params) const
{
if(UActorComponent* Component = Cast<UActorComponent>(Params.Context))
{
// Create an inherited subobject data
if(Params.bIsInheritedSCS || Component->CreationMethod != EComponentCreationMethod::Instance)
{
return true;
}
}
else if (USCS_Node* SCS = Cast<USCS_Node>(Params.Context))
{
if (UActorComponent* Comp = SCS->ComponentTemplate)
{
return Comp->CreationMethod != EComponentCreationMethod::Instance;
}
}
return false;
}