#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "Templates/SubclassOf.h"
#include "UObject/NoExportTypes.h"
#include "Layout/Margin.h"
#include "Styling/SlateBrush.h"
#include "MatchmakingReadyStatusViewData.h"
#include "CoreMatchmakingReadyMarkerWidget.generated.h"

class UDBDImage;
class UHorizontalBox;

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

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<UDBDImage> _readyMarkerClass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FLinearColor _emptyColor;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FLinearColor _joinedColor;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FLinearColor _readyColor;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FMargin _readyMarkerMargins;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FSlateBrush _readyMarkerBrush;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UHorizontalBox* ReadyMarkerContainer;

	UPROPERTY(BlueprintReadWrite, Transient, Instanced)
	TArray<UDBDImage*> _readyMarkers;

public:
	UFUNCTION(BlueprintCallable)
	void SetReadyStatus(const FMatchmakingReadyStatusViewData& status);

	UFUNCTION(BlueprintCallable)
	void SetNumberOfMarkers(int32 numberOfMarkers);

public:
	UCoreMatchmakingReadyMarkerWidget();
};

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