#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "EGameFlowStep.h"
#include "Engine/EngineTypes.h"
#include "ECustomizationCategory.h"
#include "MenuForcedLODHandler.generated.h"

class AActor;
class ADBDMenuPlayer;

UCLASS(Blueprintable, meta=(BlueprintSpawnableComponent))
class UMenuForcedLODHandler : public UActorComponent
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<EGameFlowStep> _forcedLOD0GameFlowSteps;

private:
	UFUNCTION(BlueprintCallable)
	void OnMenuPlayerEndPlay(AActor* menuPlayerActor, EEndPlayReason::Type endPlayReason);

	UFUNCTION(BlueprintCallable)
	void OnCustomizationChanged(ECustomizationCategory category, const FName& itemId, ADBDMenuPlayer* menuPlayer);

public:
	UMenuForcedLODHandler();
};

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