#pragma once

#include "CoreMinimal.h"
#include "ScreenBase.h"
#include "NavigationScreen.generated.h"

UCLASS(Blueprintable)
class DEADBYDAYLIGHT_API UNavigationScreen : public UScreenBase
{
	GENERATED_BODY()

protected:
	UFUNCTION(BlueprintCallable)
	void ShowcaseMapButtonUnhovered();

	UFUNCTION(BlueprintCallable)
	void ShowcaseMapButtonHovered(int32 x, int32 y, int32 width, int32 height);

	UFUNCTION(BlueprintCallable)
	void OnReadyButtonClick();

	UFUNCTION(BlueprintCallable)
	void OnPlayWhileYouWaitIconMouseUnhovered();

	UFUNCTION(BlueprintCallable)
	void OnPlayWhileYouWaitIconMouseHovered(int32 x, int32 y, int32 width, int32 height);

	UFUNCTION(BlueprintCallable)
	void OnPlayerOptionSelected(const FString& krakenId, const FString& playerId, uint8 option);

	UFUNCTION(BlueprintCallable)
	void OnPlayerInfoClick(int32 playerId);

	UFUNCTION(BlueprintCallable)
	void OnNoAchievementIconMouseUnhovered();

	UFUNCTION(BlueprintCallable)
	void OnNoAchievementIconMouseHovered(int32 x, int32 y, int32 width, int32 height);

	UFUNCTION(BlueprintCallable)
	void OnMatchMakingBanTimeout();

	UFUNCTION(BlueprintCallable)
	void OnFadeOutEnded();

	UFUNCTION(BlueprintCallable)
	void OnCrossplayMouseUnhovered();

	UFUNCTION(BlueprintCallable)
	void OnCrossplayMouseHovered(int32 x, int32 y, int32 width, int32 height);

	UFUNCTION(BlueprintCallable)
	void OnCancelButtonClick();

	UFUNCTION(BlueprintCallable)
	void OnBloodpointIncentiveUnhovered();

	UFUNCTION(BlueprintCallable)
	void OnBloodpointIncentiveHovered(int32 x, int32 y, int32 width, int32 height);

	UFUNCTION(BlueprintCallable)
	void OnBankClick(int32 currencyTypeInt);

	UFUNCTION(BlueprintCallable)
	void OnAddPlayerClick(int32 buttonId);

	UFUNCTION(BlueprintCallable)
	void OnAddPlayerButtonUnhovered();

	UFUNCTION(BlueprintCallable)
	void OnAddPlayerButtonHover(int32 x, int32 y, int32 width, int32 height);

public:
	UNavigationScreen();
};

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