#pragma once

#include "CoreMinimal.h"
#include "HudPresenter.h"
#include "Templates/SubclassOf.h"
#include "ItemPickupPresenter.generated.h"

class UUserWidget;
class UInteractionDefinition;

UCLASS(Blueprintable, EditInlineNew)
class UItemPickupPresenter : public UHudPresenter
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<UUserWidget> _itemPickupWidgetClass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<TSubclassOf<UInteractionDefinition>> _interactionsToTriggerPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<TSubclassOf<UInteractionDefinition>> _interactionsNotAllowedToTriggerPopup;

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<TSubclassOf<UInteractionDefinition>> _interactionsAllowedIfAbridgedVersionIsOn;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<TSubclassOf<UInteractionDefinition>> _interactionsAllowedIfAbridgedVersionIsOff;

public:
	UItemPickupPresenter();
};

FORCEINLINE uint32 GetTypeHash(const UItemPickupPresenter) { return 0; }
