LifePlay-Revival/Source/LifePlay/LPNavigationHelpers.h

49 lines
1.9 KiB
C
Raw Normal View History

// Portage UE 5.5 (2026.9 beta) - remediation R-04.
//
// UNavigationSystemV1::K2_GetRandomPointInNavigableRadius est deprecie depuis 5.1 au profit
// de K2_GetRandomLocationInNavigableRadius. Les deux ont EXACTEMENT la meme liste de
// parametres et le meme retour, mais l'ancien est BlueprintPure et le nouveau est
// BlueprintCallable : echanger la reference de fonction sur les noeuds existants leur
// ajouterait des broches Exec non connectees, ils seraient elagues a la compilation.
// C'est le meme piege que celui traite par ULPAssetRegistryHelpers lors du portage 4.27.
//
// Cette classe re-expose donc la version NON depreciee en BlueprintPure, avec des noms de
// broches identiques a ceux du noeud d'origine, pour que le rebranchement des noeuds existants
// (commandlet retiree en U2, voir l'historique git) se contente de reaiguiller la reference de fonction.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "Templates/SubclassOf.h"
#include "LPNavigationHelpers.generated.h"
class ANavigationData;
class UNavigationQueryFilter;
UCLASS()
class LIFEPLAY_API ULPNavigationHelpers : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
/**
* Version PURE de UNavigationSystemV1::K2_GetRandomLocationInNavigableRadius.
*
* Les noms de parametres reproduisent ceux de K2_GetRandomPointInNavigableRadius : ce sont
* eux qui portent les liaisons dans les Blueprints existants (Room, Person, AI).
*/
UFUNCTION(BlueprintPure, Category = "AI|Navigation",
meta = (WorldContext = "WorldContextObject",
DisplayName = "Get Random Location in Navigable Radius (Pure)",
Keywords = "random point navigable radius"))
static bool GetRandomLocationInNavigableRadius(
UObject* WorldContextObject,
const FVector& Origin,
FVector& RandomLocation,
float Radius,
ANavigationData* NavData = nullptr,
TSubclassOf<UNavigationQueryFilter> FilterClass = nullptr);
};