Files
UnrealEngine/Engine/Plugins/Animation/GeneSplicer/Source/GeneSplicerModule/Private/RegionAffiliationAsset.cpp
2025-05-18 13:04:45 +08:00

60 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "RegionAffiliationAsset.h"
#include "RegionAffiliationAssetCustomVersion.h"
#include "ArchiveMemoryStream.h"
#include "FMemoryResource.h"
DEFINE_LOG_CATEGORY(LogRegionAffiliationAsset);
URegionAffiliationAsset::URegionAffiliationAsset()
{
}
int32 URegionAffiliationAsset::GetRegionCount() const
{
return static_cast<int32>(RegionAffiliationReader->GetRegionNum());
}
FString URegionAffiliationAsset::GetRegionName(int32 RegionIndex) const
{
return RegionAffiliationReader->getRegionName(RegionIndex);
}
const TSharedPtr<FRegionAffiliationReader>& URegionAffiliationAsset::getRegionAffiliationReaderPtr() {
return RegionAffiliationReader;
}
void URegionAffiliationAsset::SetRegionAffiliationPtr(TSharedPtr<FRegionAffiliationReader> RegionAffiliationReaderPtr)
{
FWriteScopeLock RAFScopeLock{ UpdateLock };
RegionAffiliationReader = RegionAffiliationReaderPtr;
}
void URegionAffiliationAsset::Serialize(FArchive& Ar)
{
Super::Serialize(Ar);
Ar.UsingCustomVersion(FRegionAffiliationAssetCustomVersion::GUID);
FWriteScopeLock RAFScopeLock{ UpdateLock };
if (Ar.CustomVer(FRegionAffiliationAssetCustomVersion::GUID) >= FRegionAffiliationAssetCustomVersion::BeforeCustomVersionWasAdded)
{
if (Ar.IsLoading())
{
RegionAffiliationReader = MakeShared<FRegionAffiliationReader>(Ar);
}
if (Ar.IsSaving())
{
if (RegionAffiliationReader.IsValid()) {
RegionAffiliationReader->Serialize(Ar);
}
}
}
}