#pragma once

#include "CoreMinimal.h"
#include "GenericGraphNode.h"
#include "DialogueTree.h"
#include "DialogueTextNode.generated.h"

UENUM(BlueprintType)
enum class ECharacterSpeaking : uint8
{
	Character1,
	Character2,
	Character3,
	Character4
};

UCLASS(Blueprintable)
class UDialogueTextNode : public UGenericGraphNode
{
	GENERATED_BODY()

public:
	UDialogueTextNode();

	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Dialogue", meta = (MultiLine = true))
	FText Text;

	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Dialogue")
	ECharacterSpeaking DialogueCharacterSpeaking = ECharacterSpeaking::Character1;

#if WITH_EDITOR
	virtual FText GetNodeTitle() const override;
	virtual void SetNodeTitle(const FText& NewTitle) override;
	virtual FLinearColor GetBackgroundColor() const override;
#endif
};
