// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Delegates/Delegate.h" #include "Kismet/BlueprintAsyncActionBase.h" #include "Templates/SharedPointer.h" #include "UObject/UObjectGlobals.h" #include "UObject/WeakObjectPtrTemplates.h" #include "AsyncAction_QueryReplays.generated.h" class APlayerController; class INetworkReplayStreamer; class ULyraReplayList; class UObject; struct FEnumerateStreamsResult; struct FFrame; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FQueryReplayAsyncDelegate, ULyraReplayList*, Results); /** * Watches for team changes in the specified player controller */ UCLASS() class UAsyncAction_QueryReplays : public UBlueprintAsyncActionBase { GENERATED_BODY() public: UAsyncAction_QueryReplays(const FObjectInitializer& ObjectInitializer); // Watches for team changes in the specified player controller UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true")) static UAsyncAction_QueryReplays* QueryReplays(APlayerController* PlayerController); virtual void Activate() override; public: // Called when the replay query completes UPROPERTY(BlueprintAssignable) FQueryReplayAsyncDelegate QueryComplete; private: void OnEnumerateStreamsComplete(const FEnumerateStreamsResult& Result); private: UPROPERTY() TObjectPtr ResultList; TWeakObjectPtr PlayerController; TSharedPtr ReplayStreamer; };