13#include "GameplayTask.generated.h"
17class UGameplayTasksComponent;
75 ensure(ResourceID < MaxResources);
76 Flags |= (1 << ResourceID);
81 ensure(ResourceID < MaxResources);
82 Flags &= ~(1 << ResourceID);
87 ensure(ResourceID < MaxResources);
88 return (
Flags & (1 << ResourceID)) != 0;
144UCLASS(Abstract, BlueprintType, meta = (ExposedAsyncProxy=
AsyncTask), config =
Game, MinimalAPI)
156 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly =
"true"), Category =
"Gameplay Tasks")
198 return WorldContextObject !=
nullptr ?
NewTask<T>(*WorldContextObject, InstanceName) :
nullptr;
208 inline static T* NewTask(
UObject& WorldContextObject,
FName InstanceName =
FName());
228 UFUNCTION(BlueprintCallable, Category=
"GameplayTasks")
231 virtual bool IsSupportedForNetworking()
const override {
return bSimulatedTask; }
237 inline bool IsPausable()
const {
return (bIsPausable != 0); }
258 AddRequiredResource(T::StaticClass());
264 AddClaimedResource(T::StaticClass());
317 friend UGameplayTasksComponent;
378#if WITH_GAMEPLAYTASK_DEBUG
379 mutable FString DebugDescription;
381 const FString& GetDebugDescription()
const
383 if (DebugDescription.IsEmpty())
385 DebugDescription = GenerateDebugDescription();
387 return DebugDescription;
420 return (
A && !
A->GetInstanceName().IsNone() &&
A->GetInstanceName().IsValid() && (
A->GetInstanceName() ==
InstanceName));
#define ensure( InExpression)
Definition AssertionMacros.h:464
void AsyncTask(ENamedThreads::Type Thread, TUniqueFunction< void()> Function)
Definition Async.cpp:54
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EGameplayTaskState
Definition GameplayTask.h:23
ETaskResourceOverlapPolicy
Definition GameplayTask.h:33
@ RequestCancelAndStartAtEnd
@ RequestCancelAndStartOnTop
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition GameplayTaskOwnerInterface.h:21
Definition ScriptInterface.h:139
UE_FORCEINLINE_HINT InInterfaceType * GetInterface() const
Definition ScriptInterface.h:335
Definition SubclassOf.h:30
Definition ReplicationFragment.h:244
Definition GameplayTaskResource.h:15
Definition GameplayTask.h:146
bool IsOwnedByTasksComponent() const
Definition GameplayTask.h:253
FGameplayResourceSet GetClaimedResources() const
Definition GameplayTask.h:242
static T * NewTask(UObject *WorldContextObject, FName InstanceName=FName())
Definition GameplayTask.h:196
FName GetInstanceName() const
Definition GameplayTask.h:233
UGameplayTask * GetChildTask() const
Definition GameplayTask.h:249
IGameplayTaskOwnerInterface * GetTaskOwner() const
Definition GameplayTask.h:250
ETaskResourceOverlapPolicy GetResourceOverlapPolicy() const
Definition GameplayTask.h:283
UGameplayTasksComponent * GetGameplayTasksComponent() const
Definition GameplayTask.h:252
void MarkOwnerFinished()
Definition GameplayTask.h:180
bool IsActive() const
Definition GameplayTask.h:245
bool IsPaused() const
Definition GameplayTask.h:246
EGameplayTaskState GetState() const
Definition GameplayTask.h:244
virtual bool IsWaitingOnRemotePlayerdata() const
Definition GameplayTask.h:285
bool IsSimulating() const
Definition GameplayTask.h:236
FName InstanceName
Definition GameplayTask.h:328
bool HasOwnerFinished() const
Definition GameplayTask.h:238
TWeakInterfacePtr< IGameplayTaskOwnerInterface > TaskOwner
Definition GameplayTask.h:370
static T * NewTask(TScriptInterface< IGameplayTaskOwnerInterface > TaskOwner, FName InstanceName=FName())
Definition GameplayTask.h:202
bool IsSimulatedTask() const
Definition GameplayTask.h:235
FGameplayResourceSet GetRequiredResources() const
Definition GameplayTask.h:241
virtual bool IsWaitingOnAvatar() const
Definition GameplayTask.h:287
bool IsFinished() const
Definition GameplayTask.h:247
UGameplayTasksComponent * GetGameplayTasksComponent()
Definition GameplayTask.h:251
static T * NewTaskUninitialized()
Definition GameplayTask.h:216
bool IsTickingTask() const
Definition GameplayTask.h:234
void AddRequiredResource()
Definition GameplayTask.h:256
void AddClaimedResource()
Definition GameplayTask.h:262
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FGenericGameplayTaskDelegate)
bool RequiresPriorityOrResourceManagement() const
Definition GameplayTask.h:240
uint8 GetPriority() const
Definition GameplayTask.h:239
static GAMEPLAYTASKS_API IGameplayTaskOwnerInterface * ConvertToTaskOwner(UObject &OwnerObject)
Definition GameplayTask.cpp:30
bool IsPausable() const
Definition GameplayTask.h:237
EFragmentRegistrationFlags
Definition ReplicationFragment.h:220
Definition GameplayTask.h:46
static FGameplayResourceSet AllResources()
Definition GameplayTask.h:131
bool IsEmpty() const
Definition GameplayTask.h:69
FFlagContainer GetFlags() const
Definition GameplayTask.h:65
FGameplayResourceSet & RemoveSet(FGameplayResourceSet Other)
Definition GameplayTask.h:95
FGameplayResourceSet & RemoveID(uint8 ResourceID)
Definition GameplayTask.h:79
FGameplayResourceSet GetDifference(FGameplayResourceSet Other) const
Definition GameplayTask.h:116
uint8 FResourceID
Definition GameplayTask.h:50
bool HasID(uint8 ResourceID) const
Definition GameplayTask.h:85
FGameplayResourceSet & AddSet(FGameplayResourceSet Other)
Definition GameplayTask.h:90
bool HasAnyID(FGameplayResourceSet Other) const
Definition GameplayTask.h:108
FGameplayResourceSet GetOverlap(FGameplayResourceSet Other) const
Definition GameplayTask.h:112
uint16 FFlagContainer
Definition GameplayTask.h:49
void Clear()
Definition GameplayTask.h:100
bool operator!=(const FGameplayResourceSet &Other) const
Definition GameplayTask.h:126
bool HasAllIDs(FGameplayResourceSet Other) const
Definition GameplayTask.h:104
static FGameplayResourceSet NoResources()
Definition GameplayTask.h:136
bool operator==(const FGameplayResourceSet &Other) const
Definition GameplayTask.h:121
FGameplayResourceSet(FFlagContainer InFlags=0)
Definition GameplayTask.h:62
FGameplayResourceSet & AddID(uint8 ResourceID)
Definition GameplayTask.h:73
Definition GameplayTask.h:428
bool operator()(const UGameplayTask *A) const
Definition GameplayTask.h:434
TSubclassOf< UGameplayTask > TaskClass
Definition GameplayTask.h:439
FGameplayTaskInstanceClassPredicate(TSubclassOf< UGameplayTask > Class)
Definition GameplayTask.h:429
Definition GameplayTask.h:412
FName InstanceName
Definition GameplayTask.h:423
bool operator()(const UGameplayTask *A) const
Definition GameplayTask.h:418
FGameplayTaskInstanceNamePredicate(FName DesiredInstanceName)
Definition GameplayTask.h:413
Definition ObjectPtr.h:488
Definition WeakInterfacePtr.h:18
Definition WeakObjectPtrTemplates.h:25