#pragma once

#include "CoreMinimal.h"
#include "DBDExcludableTableRow.h"
#include "UObject/SoftObjectPtr.h"
#include "MaterialReplacerData.h"
#include "ConditionalMaterialReplacer.h"
#include "K41HeadModeCustomizationData.generated.h"

class USkeletalMesh;
class UAnimInstance;

USTRUCT(BlueprintType)
struct FK41HeadModeCustomizationData : public FDBDExcludableTableRow
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSoftObjectPtr<USkeletalMesh> ItemMesh;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSoftClassPtr<UAnimInstance> AnimClass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FMaterialReplacerData> MaterialsMap;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FConditionalMaterialReplacer ConditionalMaterialReplacer;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FName> SkeletalComponentTags;

public:
	THEK41_API FK41HeadModeCustomizationData();
};

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