87 lines
2.2 KiB
C++
87 lines
2.2 KiB
C++
// © 2025 Naked People Team. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "BodyPart.h"
|
|
#include "ClothingSlotType.h"
|
|
#include "Engine/DataAsset.h"
|
|
#include "NakedDesire/Player/PrivateBodyPartType.h"
|
|
#include "NakedDesire/Progression/ProgressionPath.h"
|
|
#include "ClothingItem.generated.h"
|
|
|
|
UENUM(BlueprintType)
|
|
enum class EGarmentContainerSlotType : uint8
|
|
{
|
|
S UMETA(DisplayName = "Small"),
|
|
M UMETA(DisplayName = "Medium"),
|
|
L UMETA(DisplayName = "Large"),
|
|
};
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct NAKEDDESIRE_API FGarmentContainerSlot
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
EGarmentContainerSlotType SlotType = EGarmentContainerSlotType::S;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (ClampMin = 1))
|
|
int32 Count = 1;
|
|
};
|
|
|
|
UCLASS(BlueprintType)
|
|
class NAKEDDESIRE_API UClothingItem : public UPrimaryDataAsset
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
FText Name;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
UTexture2D* Icon;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
EClothingSlotType SlotType;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
USkeletalMesh* SkeletalMesh;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
TMap<FName, UMaterialInstance*> Materials;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
UStaticMesh* StaticMesh;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
int BasePrice;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
TArray<EPrivateBodyPartType> CoveredBodyParts; // TODO: Add coverage per body part
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (EditCondition = "SlotType == EClothingSlotType::Shoes", Category = "Shoes"))
|
|
float ShoesOffset = 0.0f;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
bool UseLeaderPose = false;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
EProgressionPath ProgressionPath;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
TArray<EBodyPart> CanExpose;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
bool IsRestrictive;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
float Coverage = 1.0f;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
bool IsUnderwear;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
|
TArray<FGarmentContainerSlot> ContainerSlots;
|
|
};
|