#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "Templates/SubclassOf.h"
#include "UObject/NoExportTypes.h"
#include "EBubbleShowedPlayerType.h"
#include "BubbleIndicatorNotifier.generated.h"

class UObject;
class ABubbleIndicator;
class UStaticMesh;

UCLASS(Blueprintable)
class DBDGAMEPLAY_API UBubbleIndicatorNotifier : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintCallable)
	static void SpawnBubbleIndicator(UObject* worldContextObject, TSubclassOf<ABubbleIndicator> bubbleIndicatorBP, FTransform transform, bool triggerLoudNoise, EBubbleShowedPlayerType showedPlayerType, float lifetime, UStaticMesh* silhouetteStaticMesh, float audibleRange);

	UFUNCTION(BlueprintCallable)
	static ABubbleIndicator* PreSpawnBubbleIndicator(UObject* worldContextObject, TSubclassOf<ABubbleIndicator> bubbleIndicatorBP, UStaticMesh* silhouetteStaticMesh);

	UFUNCTION(BlueprintCallable)
	static void ActivateBubbleIndicator(UObject* worldContextObject, ABubbleIndicator* bubbleIndicator, FTransform transform, bool triggerLoudNoise, float lifetime, float audibleRange);

public:
	UBubbleIndicatorNotifier();
};

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