Files
ArenaFPS/Source/LyraGame/Interaction/Tasks/AbilityTask_WaitForInteractableTargets_SingleLineTrace.h
2025-11-17 21:49:11 +00:00

44 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Interaction/InteractionQuery.h"
#include "Interaction/Tasks/AbilityTask_WaitForInteractableTargets.h"
#include "AbilityTask_WaitForInteractableTargets_SingleLineTrace.generated.h"
struct FCollisionProfileName;
class UGameplayAbility;
class UObject;
struct FFrame;
UCLASS()
class UAbilityTask_WaitForInteractableTargets_SingleLineTrace : public UAbilityTask_WaitForInteractableTargets
{
GENERATED_UCLASS_BODY()
virtual void Activate() override;
/** Wait until we trace new set of interactables. This task automatically loops. */
UFUNCTION(BlueprintCallable, Category="Ability|Tasks", meta = (HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = "TRUE"))
static UAbilityTask_WaitForInteractableTargets_SingleLineTrace* WaitForInteractableTargets_SingleLineTrace(UGameplayAbility* OwningAbility, FInteractionQuery InteractionQuery, FCollisionProfileName TraceProfile, FGameplayAbilityTargetingLocationInfo StartLocation, float InteractionScanRange = 100, float InteractionScanRate = 0.100, bool bShowDebug = false);
private:
virtual void OnDestroy(bool AbilityEnded) override;
void PerformTrace();
UPROPERTY()
FInteractionQuery InteractionQuery;
UPROPERTY()
FGameplayAbilityTargetingLocationInfo StartLocation;
float InteractionScanRange = 100;
float InteractionScanRate = 0.100;
bool bShowDebug = false;
FTimerHandle TimerHandle;
};