// Copyright Epic Games, Inc. All Rights Reserved. #include "Tasks/GameplayTask_ClaimResource.h" UGameplayTask_ClaimResource::UGameplayTask_ClaimResource(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } UGameplayTask_ClaimResource* UGameplayTask_ClaimResource::ClaimResource(TScriptInterface InTaskOwner, TSubclassOf ResourceClass, const uint8 Priority, const FName TaskInstanceName) { return InTaskOwner.GetInterface() ? ClaimResource(*InTaskOwner, ResourceClass, Priority, TaskInstanceName) : nullptr; } UGameplayTask_ClaimResource* UGameplayTask_ClaimResource::ClaimResources(TScriptInterface InTaskOwner, TArray > ResourceClasses, const uint8 Priority, const FName TaskInstanceName) { return InTaskOwner.GetInterface() ? ClaimResources(*InTaskOwner, ResourceClasses, Priority, TaskInstanceName) : nullptr; } UGameplayTask_ClaimResource* UGameplayTask_ClaimResource::ClaimResource(IGameplayTaskOwnerInterface& InTaskOwner, const TSubclassOf ResourceClass, const uint8 Priority, const FName TaskInstanceName) { if (!ResourceClass) { return nullptr; } UGameplayTask_ClaimResource* MyTask = NewTaskUninitialized(); if (MyTask) { MyTask->InitTask(InTaskOwner, Priority); MyTask->InstanceName = TaskInstanceName; MyTask->AddClaimedResource(ResourceClass); } return MyTask; } UGameplayTask_ClaimResource* UGameplayTask_ClaimResource::ClaimResources(IGameplayTaskOwnerInterface& InTaskOwner, const TArray >& ResourceClasses, const uint8 Priority, const FName TaskInstanceName) { if (ResourceClasses.Num() == 0) { return nullptr; } UGameplayTask_ClaimResource* MyTask = NewTaskUninitialized(); if (MyTask) { MyTask->InitTask(InTaskOwner, Priority); MyTask->InstanceName = TaskInstanceName; for (const TSubclassOf& ResourceClass : ResourceClasses) { MyTask->AddClaimedResource(ResourceClass); } } return MyTask; }