LifePlay-Revival/Source/LifePlay/LPAssetRegistryHelpers.cpp
edujiro5972 1122e17fa6 L0 : etat initial du projet 5.5 avant toute correction
Instantane de reference de la reprise de migration (2026-09-29).
Contient GI.uasset tel que trouve (copie UE4 identique a 4.27,
MD5 F4550DA5DC05FC005400CDCA2FC123C9). Ajouts de ce commit :
.gitattributes (aucune conversion de fin de ligne), regles .gitignore
CHG-001, Tools/ (Snapshot, Restore, AssetHeaders), empreintes L0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:56:10 +02:00

58 lines
2.2 KiB
C++

// Portage UE 5.5 (2026.9 beta) - voir LPAssetRegistryHelpers.h
#include "LPAssetRegistryHelpers.h"
#include "AssetRegistry/AssetRegistryModule.h"
#include "AssetRegistry/IAssetRegistry.h"
#include "Modules/ModuleManager.h"
FAssetData ULPAssetRegistryHelpers::GetAssetByObjectPath(const FName ObjectPath, bool bIncludeOnlyOnDiskAssets)
{
const FAssetRegistryModule& AssetRegistryModule =
FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
// 5.1+ : la surcharge prenant un FName est depreciee. La broche Blueprint reste un
// FName (les noeuds rebranches par la commandlet en dependent), seule la conversion
// vers FSoftObjectPath est faite ici.
const FSoftObjectPath Path(ObjectPath.ToString());
const FAssetData Result = AssetRegistryModule.Get().GetAssetByObjectPath(Path, bIncludeOnlyOnDiskAssets);
// Diagnostic du 2026-09-08 : cette fonction a ete instrumentee pour verifier qu'elle
// n'etait pas en cause dans l'absence de maillage des personnages. Elle ne l'etait pas
// (2720 resolutions reussies sur 2776). Le defaut venait de GetAssetsByClass, ci-dessous.
return Result;
}
bool ULPAssetRegistryHelpers::GetAssetsByClassName(FName ClassName, TArray<FAssetData>& OutAssetData, bool bSearchSubClasses)
{
OutAssetData.Reset();
if (ClassName.IsNone())
{
return false;
}
// TryFindTypeSlow resout un nom court ("SkeletalMesh") vers la classe reelle, quel que
// soit son module : /Script/Engine.SkeletalMesh comme /Script/StreetMapRuntime.StreetMap.
const UClass* ResolvedClass = UClass::TryFindTypeSlow<UClass>(ClassName.ToString());
if (!ResolvedClass)
{
UE_LOG(LogTemp, Warning, TEXT("LPAssetRegistryHelpers : classe '%s' introuvable."), *ClassName.ToString());
return false;
}
const FAssetRegistryModule& AssetRegistryModule =
FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
return AssetRegistryModule.Get().GetAssetsByClass(
FTopLevelAssetPath(ResolvedClass), OutAssetData, bSearchSubClasses);
}
FName ULPAssetRegistryHelpers::GetAssetObjectPath(const FAssetData& AssetData)
{
if (!AssetData.IsValid())
{
return NAME_None;
}
return FName(*AssetData.GetSoftObjectPath().ToString());
}