Files
UnrealEngineUWP/Engine/Source/Editor/ClassViewer/Private/UnloadedBlueprintData.cpp
2014-03-14 14:13:41 -04:00

75 lines
1.9 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "ClassViewerPrivatePCH.h"
#include "UnloadedBlueprintData.h"
#include "ClassViewerNode.h"
FUnloadedBlueprintData::FUnloadedBlueprintData( TWeakPtr< FClassViewerNode > InClassViewerNode )
{
ClassViewerNode = InClassViewerNode;
ClassFlags = CLASS_None;
}
bool FUnloadedBlueprintData::HasAnyClassFlags( uint32 InFlagsToCheck ) const
{
return (ClassFlags & InFlagsToCheck) != 0;
}
bool FUnloadedBlueprintData::HasAllClassFlags( uint32 InFlagsToCheck ) const
{
return ((ClassFlags & InFlagsToCheck) == InFlagsToCheck);
}
void FUnloadedBlueprintData::SetClassFlags(uint32 InFlags)
{
ClassFlags = InFlags;
}
bool FUnloadedBlueprintData::IsChildOf(const UClass* InClass) const
{
TSharedPtr< FClassViewerNode > CurrentNode = ClassViewerNode.Pin()->ParentNode.Pin();
// Keep going through parents till you find an invalid.
while(CurrentNode.IsValid())
{
if(*CurrentNode->GetClassName() == InClass->GetName())
{
return true;
}
CurrentNode = CurrentNode->ParentNode.Pin();
}
return false;
}
bool FUnloadedBlueprintData::ImplementsInterface(const UClass* InInterface) const
{
for(int InterfaceIdx = 0; InterfaceIdx < ImplementedInterfaces.Num(); ++InterfaceIdx)
{
if(ImplementedInterfaces[InterfaceIdx] == InInterface->GetName())
{
return true;
}
}
return false;
}
bool FUnloadedBlueprintData::IsA(const UClass* InClass) const
{
// Unloaded blueprints will always return true for IsA(UBlueprintGeneratedClass::StaticClass). With that in mind, even though we do not have the exact class, we can use that knowledge as a basis for a check.
return ((UObject*)UBlueprintGeneratedClass::StaticClass())->IsA(InClass);
}
const TWeakPtr< class FClassViewerNode > FUnloadedBlueprintData::GetClassViewerNode() const
{
return ClassViewerNode;
}
void FUnloadedBlueprintData::AddImplementedInterfaces(FString& InterfaceName)
{
ImplementedInterfaces.Add(InterfaceName);
}