RealtimeStyleTransferRuntime/Plugins/CommonGame/Source/Public/Actions/AsyncAction_PushContentToLa...

54 lines
1.7 KiB
C
Raw Normal View History

2022-05-23 18:41:30 +00:00
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Interfaces/IHttpRequest.h"
#include "Kismet/BlueprintAsyncActionBase.h"
#include "Blueprint/UserWidget.h"
#include "Engine/StreamableManager.h"
#include "GameFramework/PlayerController.h"
#include "GameplayTagContainer.h"
#include "Engine/CancellableAsyncAction.h"
#include "AsyncAction_PushContentToLayerForPlayer.generated.h"
class UGameInstance;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FPushContentToLayerForPlayerAsyncDelegate, UCommonActivatableWidget*, UserWidget);
/**
*
*/
UCLASS(BlueprintType)
class COMMONGAME_API UAsyncAction_PushContentToLayerForPlayer : public UCancellableAsyncAction
{
GENERATED_UCLASS_BODY()
public:
virtual void Cancel() override;
UFUNCTION(BlueprintCallable, BlueprintCosmetic, meta=(WorldContext = "WorldContextObject", BlueprintInternalUseOnly="true"))
static UAsyncAction_PushContentToLayerForPlayer* PushContentToLayerForPlayer(APlayerController* OwningPlayer, UPARAM(meta = (AllowAbstract=false)) TSoftClassPtr<UCommonActivatableWidget> WidgetClass, UPARAM(meta = (Categories = "UI.Layer")) FGameplayTag LayerName, bool bSuspendInputUntilComplete = true);
virtual void Activate() override;
public:
UPROPERTY(BlueprintAssignable)
FPushContentToLayerForPlayerAsyncDelegate BeforePush;
UPROPERTY(BlueprintAssignable)
FPushContentToLayerForPlayerAsyncDelegate AfterPush;
private:
FGameplayTag LayerName;
bool bSuspendInputUntilComplete = false;
TWeakObjectPtr<APlayerController> OwningPlayerPtr;
TSoftClassPtr<UCommonActivatableWidget> WidgetClass;
TSharedPtr<FStreamableHandle> StreamingHandle;
};