LifePlay-Revival/Source/LifePlay/LPNavigationHelpers.h
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

48 lines
1.9 KiB
C++

// 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);
};