RealtimeStyleTransferRuntime/Source/LyraGame/Input/LyraInputConfig.h

60 lines
1.7 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 "Engine/DataAsset.h"
#include "GameplayTagContainer.h"
#include "LyraInputConfig.generated.h"
class UInputAction;
class UInputMappingContext;
class ULyraLocalPlayer;
/**
* FLyraInputAction
*
* Struct used to map a input action to a gameplay input tag.
*/
USTRUCT(BlueprintType)
struct FLyraInputAction
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly)
const UInputAction* InputAction = nullptr;
UPROPERTY(EditDefaultsOnly, Meta = (Categories = "InputTag"))
FGameplayTag InputTag;
};
/**
* ULyraInputConfig
*
* Non-mutable data asset that contains input configuration properties.
*/
UCLASS(BlueprintType, Const)
class ULyraInputConfig : public UDataAsset
{
GENERATED_BODY()
public:
ULyraInputConfig(const FObjectInitializer& ObjectInitializer);
const UInputAction* FindNativeInputActionForTag(const FGameplayTag& InputTag, bool bLogNotFound = true) const;
const UInputAction* FindAbilityInputActionForTag(const FGameplayTag& InputTag, bool bLogNotFound = true) const;
public:
// List of input actions used by the owner. These input actions are mapped to a gameplay tag and must be manually bound.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Meta = (TitleProperty = "InputAction"))
TArray<FLyraInputAction> NativeInputActions;
// List of input actions used by the owner. These input actions are mapped to a gameplay tag and are automatically bound to abilities with matching input tags.
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Meta = (TitleProperty = "InputAction"))
TArray<FLyraInputAction> AbilityInputActions;
};