#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "Templates/SubclassOf.h"
#include "MatchmakingReadyStatusViewData.h"
#include "CoreMatchmakingReadyMarkerContainerWidget.generated.h"

class UCoreMatchmakingReadyMarkerWidget;
class UHorizontalBox;

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

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

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _marginRight;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _marginLeft;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _marginMiddle;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _marginTop;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _marginBottom;

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

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

public:
	UFUNCTION(BlueprintCallable)
	void StopVFX();

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

	UFUNCTION(BlueprintCallable)
	void SetNumberOfMarkers(int32 numberOfMarkers);

	UFUNCTION(BlueprintCallable)
	void PlayVFX();

public:
	UCoreMatchmakingReadyMarkerContainerWidget();
};

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