// Copyright Pacificao. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "AgrarianInteractable.generated.h"

class AAgrarianGameCharacter;

UINTERFACE(BlueprintType)
class UAgrarianInteractable : public UInterface
{
	GENERATED_BODY()
};

class IAgrarianInteractable
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Agrarian|Interaction")
	FText GetInteractionText(const AAgrarianGameCharacter* Interactor) const;

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Agrarian|Interaction")
	bool CanInteract(const AAgrarianGameCharacter* Interactor) const;

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Agrarian|Interaction")
	void Interact(AAgrarianGameCharacter* Interactor);
};
