#pragma once

#include "CoreMinimal.h"
#include "HudPresenter.h"
#include "UObject/SoftObjectPtr.h"
#include "ExternalEffectData.h"
#include "EExternalEffectSource.h"
#include "ExternalEffectsPresenter.generated.h"

class UUserWidget;

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

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSoftClassPtr<UUserWidget> CoreExternalEffectsWidgetClass;

protected:
	UFUNCTION(BlueprintCallable)
	void OnShowExternalEffect(const FExternalEffectData& data);

	UFUNCTION(BlueprintCallable)
	void OnHideExternalEffect(const FName itemId, const EExternalEffectSource externalEffectSource);

public:
	UExternalEffectsPresenter();
};

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