OLS/Source/ols/Public/DataAssets/OLSInputConfigDataAsset.h

63 lines
2.0 KiB
C
Raw Normal View History

2025-01-06 21:29:37 +00:00
// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
#pragma once
#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "Engine/DataAsset.h"
#include "OLSInputConfigDataAsset.generated.h"
/**
* FOLSInputAction
*
* Struct used to map a input action to a gameplay input tag.
*/
USTRUCT(BlueprintType)
struct FOLSInputAction
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TObjectPtr<const class UInputAction> InputAction = nullptr;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Meta = (Categories = "InputTag"))
FGameplayTag InputTag = FGameplayTag::EmptyTag;
};
DECLARE_LOG_CATEGORY_EXTERN(LogOLSInputConfigDataAsset, Verbose, All);
2025-01-06 21:29:37 +00:00
/**
* UOLSInputConfigDataAsset
*
* Non-mutable data asset that contains input configuration properties.
*/
UCLASS(BlueprintType, Const)
class OLS_API UOLSInputConfigDataAsset : public UDataAsset
{
GENERATED_BODY()
public:
UOLSInputConfigDataAsset(const FObjectInitializer& objectInitializer);
public:
UFUNCTION(BlueprintCallable, Category = "Lyra|Pawn")
const UInputAction* FindNativeInputActionForTag(const FGameplayTag& inputTag, bool shouldLogNotFound = true) const;
UFUNCTION(BlueprintCallable, Category = "Lyra|Pawn")
const UInputAction* FindAbilityInputActionForTag(const FGameplayTag& inputTag, bool shouldLogNotFound = 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<FOLSInputAction> 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<FOLSInputAction> AbilityInputActions;
};