// ©2023 Batty Bovine Productions, LLC. All Rights Reserved.

#pragma once

#include "Engine/InputDelegateBinding.h"
#include "ComboInputTriggers.h"

#include "ComboActionDelegateBinding.generated.h"


USTRUCT()
struct COMBOINPUT_API FBlueprintComboActionBinding
{
	GENERATED_BODY()

public:
	UPROPERTY()	FName FunctionNameToBind = NAME_None;
	UPROPERTY()	TObjectPtr<const class UComboAction> ComboAction;
	UPROPERTY()	EComboActionTriggerEvent TriggerEvent = EComboActionTriggerEvent::None;
};

UCLASS()
class COMBOINPUT_API UComboActionDelegateBinding : public UDynamicBlueprintBinding
{
	GENERATED_BODY()

public:
	UComboActionDelegateBinding(const FObjectInitializer &ObjectInitializer);

	//~ Begin UDynamicBlueprintBinding Interface
	virtual void BindDynamicDelegates(UObject *InInstance) const override;
	//~ End UDynamicBlueprintBinding Interface

	UPROPERTY()	TArray<FBlueprintComboActionBinding> ComboActionDelegateBindings;
};
