32 lines
1.0 KiB
C++
32 lines
1.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Abilities/GameplayAbility.h"
|
|
#include "InteractionOption.h"
|
|
#include "IInteractionInstigator.generated.h"
|
|
|
|
struct FInteractionQuery;
|
|
|
|
/** */
|
|
UINTERFACE(MinimalAPI, meta = (CannotImplementInterfaceInBlueprint))
|
|
class UInteractionInstigator : public UInterface
|
|
{
|
|
GENERATED_BODY()
|
|
};
|
|
|
|
/**
|
|
* Implementing this interface allows you to add an arbitrator to the interaction process. For example,
|
|
* some games present the user with a menu to pick which interaction they want to perform. This will allow you
|
|
* to take the multiple matches (Assuming your ULyraGameplayAbility_Interact subclass generates more than one option).
|
|
*/
|
|
class IInteractionInstigator
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** Will be called if there are more than one InteractOptions that need to be decided on. */
|
|
virtual FInteractionOption ChooseBestInteractionOption(const FInteractionQuery& InteractQuery, const TArray<FInteractionOption>& InteractOptions) = 0;
|
|
};
|