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>
60 lines
2.7 KiB
C++
60 lines
2.7 KiB
C++
// Portage UE 5.5 (2026.9 beta) - rustine introduite lors du portage 4.27, toujours necessaire.
|
|
//
|
|
// Epic a rendu IAssetRegistry::GetAssetByObjectPath impur (BlueprintPure=false) apres la
|
|
// version d'Unreal utilisee pour ecrire les Blueprints du jeu. Les graphes existants
|
|
// l'employaient comme noeud PUR : au chargement le noeud gagne une broche Exec non
|
|
// connectee, il est donc elague, et le noeud "Get Asset" qui consommait sa sortie se retrouve
|
|
// sans entree -> "'In Asset Data' ... must have an input wired into it".
|
|
//
|
|
// Cette classe re-expose la meme fonction en version PURE. La commandlet
|
|
// LPFixAssetRegistryNodes (module LifePlayEditorTools) fait pointer les noeuds existants ici.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "AssetRegistry/AssetData.h"
|
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
|
#include "LPAssetRegistryHelpers.generated.h"
|
|
|
|
UCLASS()
|
|
class LIFEPLAY_API ULPAssetRegistryHelpers : public UBlueprintFunctionLibrary
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/**
|
|
* Version PURE de IAssetRegistry::GetAssetByObjectPath.
|
|
*
|
|
* @param ObjectPath chemin de l'objet a chercher
|
|
* @param bIncludeOnlyOnDiskAssets si vrai, ignore les objets deja en memoire (plus rapide)
|
|
* @return les donnees de l'asset ; invalides si l'objet est introuvable
|
|
*/
|
|
UFUNCTION(BlueprintPure, Category = "AssetRegistry")
|
|
static FAssetData GetAssetByObjectPath(const FName ObjectPath, bool bIncludeOnlyOnDiskAssets = false);
|
|
|
|
/**
|
|
* Version FName de IAssetRegistry::GetAssetsByClass.
|
|
*
|
|
* 5.1 a remplace le parametre FName ClassName par un FTopLevelAssetPath ClassPathName.
|
|
* La montee de version a supprime l'ancienne broche des noeuds existants SANS reporter
|
|
* sa valeur sur la nouvelle : les trois appels de GI (SkeletalMesh, StaticMesh,
|
|
* StreetMap) interrogeaient donc l'AssetRegistry avec un chemin de classe VIDE et ne
|
|
* renvoyaient plus rien. Le jeu ne pouvait plus enumerer ni corps, ni vetements, ni
|
|
* coiffures : generatePerson() sans argument n'avait plus rien a tirer au sort.
|
|
*
|
|
* Rien dans le graphe ne le signalait : la compilation restait a zero erreur.
|
|
*
|
|
* Les noms de broches reproduisent ceux du noeud d'origine pour que le reaiguillage se
|
|
* limite a un changement de reference de fonction.
|
|
*/
|
|
UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
|
|
static bool GetAssetsByClassName(FName ClassName, TArray<FAssetData>& OutAssetData, bool bSearchSubClasses = false);
|
|
|
|
/**
|
|
* Equivalent de l'ancien FAssetData::ObjectPath (supprime en 5.1 au profit de
|
|
* FSoftObjectPath). Rend le chemin sous la forme "/Game/Dossier/Asset.Asset" attendue
|
|
* par les consommateurs existants.
|
|
*/
|
|
UFUNCTION(BlueprintPure, Category = "AssetRegistry")
|
|
static FName GetAssetObjectPath(const FAssetData& AssetData);
|
|
};
|