RealtimeStyleTransferRuntime/Source/LyraGame/Interaction/IInteractionInstigator.h

32 lines
1.0 KiB
C
Raw Normal View History

2022-05-23 18:41:30 +00:00
// 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;
};