#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "EPlayerRole.h"
#include "CoreChallengeIconWidget.generated.h"

class UDBDImage;
class UTextureLoadingWrapper;

UCLASS(Blueprintable, EditInlineNew)
class DBDUIVIEWSCORE_API UCoreChallengeIconWidget : public UCoreBaseUserWidget
{
	GENERATED_BODY()

protected:
	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDImage* ChallengeIcon;

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UTextureLoadingWrapper* _imageLoader;

protected:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void SetDefaultVisuals(EPlayerRole Role, const bool isCommunityObjective);

public:
	UCoreChallengeIconWidget();
};

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