// © 2025 Naked People Team. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "ClothingSlotType.h"
#include "ClothingSlotData.generated.h"

class UClothingItemInstance;
enum class EClothingSlotType : uint8;

/**
 * 
 */
USTRUCT(BlueprintType)
struct NAKEDDESIRE_API FClothingSlotData
{
	GENERATED_BODY()

	FClothingSlotData()
		: MeshComponent(nullptr), ClothingSlotType(EClothingSlotType::Anal), ClothingItemInstance(nullptr), Name(FText::GetEmpty())
	{
	}
	
	FClothingSlotData(USkeletalMeshComponent* MeshComponent, const EClothingSlotType ClothingSlotType, UClothingItemInstance* ClothingItemInstance, const FText& Name)
	{
		this->MeshComponent = MeshComponent;
		this->ClothingSlotType = ClothingSlotType;
		this->ClothingItemInstance = ClothingItemInstance;
		this->Name = Name;
	}

	UPROPERTY(BlueprintReadWrite, Category = "Clothing")
	TObjectPtr<USkeletalMeshComponent> MeshComponent = nullptr;

	UPROPERTY(BlueprintReadWrite, Category = "Clothing")
	EClothingSlotType ClothingSlotType = EClothingSlotType::Anal;

	UPROPERTY(BlueprintReadWrite, Category = "Clothing")
	TObjectPtr<UClothingItemInstance> ClothingItemInstance = nullptr;

	UPROPERTY(BlueprintReadWrite, Category = "Clothing")
	FText Name = FText::GetEmpty();
};

