LEAP Documentation 40220
Documentation for the LEAP project
ProjectXBlueprintAsyncAction.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Kismet/BlueprintAsyncActionBase.h"
7#include "GameFramework/Controller.h"
8#include "GameFramework/GameState.h"
9#include "ProjectXBlueprintAsyncAction.generated.h"
10
14UCLASS()
15class PROJECTX_API UProjectXBlueprintAsyncAction : public UBlueprintAsyncActionBase
16{
17 GENERATED_UCLASS_BODY()
18
19public:
20 virtual void Activate() override;
21
22protected:
23 UFUNCTION()
24 virtual void EvaluateRequest();
25};
26
27DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAsyncPawnRequestComplete, const APawn*, Pawn);
28
29UCLASS()
31{
32 GENERATED_UCLASS_BODY()
33
34public:
35 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", Category = "Async Helper"))
36 static UBlueprintAsyncActionGetPawn* AsyncGetPawn(AController* Controller);
37
38 UPROPERTY(BlueprintAssignable)
39 FOnAsyncPawnRequestComplete OnPawnAcquired;
40
41 UPROPERTY()
42 AController* CachedController = NULL;
43
44protected:
45 virtual void EvaluateRequest() override;
46};
47
48DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAsyncPlayerStateRequestComplete, const APlayerState*, PlayerState);
49
50UCLASS()
52{
53 GENERATED_UCLASS_BODY()
54
55public:
56 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", Category = "Async Helper"))
57 static UBlueprintAsyncActionGetPlayerState* AsyncGetPlayerState(AController* Controller);
58
59 UPROPERTY(BlueprintAssignable)
60 FOnAsyncPlayerStateRequestComplete OnPlayerStateAcquired;
61
62 UPROPERTY()
63 AController* CachedController = NULL;
64
65protected:
66 virtual void EvaluateRequest() override;
67};
68
69DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAsyncGameStateRequestComplete, const AGameState*, GameState);
70
71UCLASS()
73{
74 GENERATED_UCLASS_BODY()
75
76public:
77 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", Category = "Async Helper"))
78 static UBlueprintAsyncActionGetGameState* AsyncGetGameState(AController* Controller);
79
80 UPROPERTY(BlueprintAssignable)
81 FOnAsyncGameStateRequestComplete OnGameStateAcquired;
82
83 UPROPERTY()
84 AController* CachedController = NULL;
85
86protected:
87 virtual void EvaluateRequest() override;
88};
89
91DECLARE_DYNAMIC_DELEGATE_OneParam(FDelegateAsyncTask, bool&, Result);
92
93UCLASS()
95{
96 GENERATED_UCLASS_BODY()
97
98public:
99 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", Category = "Async Helper"))
100 static UBlueprintAsyncActionGeneric* BeginAsyncTask(UObject* Owner, FDelegateAsyncTask Task);
101
102 virtual void BeginDestroy() override;
103
104public:
105 UPROPERTY(BlueprintAssignable)
106 FOnAsyncTaskComplete OnTaskComplete;
107
108 UPROPERTY()
109 FDelegateAsyncTask CurrentTask;
110
111 UPROPERTY()
112 UObject* CachedOwner = NULL;
113
114protected:
115 virtual void EvaluateRequest() override;
116};
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnAsyncTaskComplete)
DECLARE_DYNAMIC_DELEGATE_OneParam(FDelegateAsyncTask, bool &, Result)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAsyncPawnRequestComplete, const APawn *, Pawn)
Definition: ProjectXBlueprintAsyncAction.h:95
Definition: ProjectXBlueprintAsyncAction.h:73
Definition: ProjectXBlueprintAsyncAction.h:31
Definition: ProjectXBlueprintAsyncAction.h:52
Definition: ProjectXBlueprintAsyncAction.h:16