You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
34 lines
1014 B
C++
34 lines
1014 B
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "PersonaAssetFamilyManager.h"
|
|
#include "AssetData.h"
|
|
#include "IAssetFamily.h"
|
|
#include "PersonaAssetFamily.h"
|
|
|
|
FPersonaAssetFamilyManager& FPersonaAssetFamilyManager::Get()
|
|
{
|
|
static FPersonaAssetFamilyManager TheManager;
|
|
return TheManager;
|
|
}
|
|
|
|
TSharedRef<IAssetFamily> FPersonaAssetFamilyManager::CreatePersonaAssetFamily(const UObject* InAsset)
|
|
{
|
|
// compact any invalid entries
|
|
AssetFamilies.RemoveAll([](const TWeakPtr<class IAssetFamily>& InAssetFamily) { return !InAssetFamily.IsValid(); });
|
|
|
|
// look for an existing matching asset family
|
|
FAssetData AssetData(InAsset);
|
|
for (TWeakPtr<class IAssetFamily>& AssetFamily : AssetFamilies)
|
|
{
|
|
if (AssetFamily.Pin()->IsAssetCompatible(AssetData))
|
|
{
|
|
return AssetFamily.Pin().ToSharedRef();
|
|
}
|
|
}
|
|
|
|
// not found - make a new one
|
|
TSharedRef<IAssetFamily> NewAssetFamily = MakeShareable(new FPersonaAssetFamily(InAsset));
|
|
AssetFamilies.Add(NewAssetFamily);
|
|
return NewAssetFamily;
|
|
}
|