Clothing system refactor
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
// © 2025 Naked People Team. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "BodyPart.h"
|
||||
#include "ClothingSlotType.h"
|
||||
#include "Engine/DataAsset.h"
|
||||
#include "NakedDesire/Items/ItemDefinition.h"
|
||||
#include "NakedDesire/Progression/ProgressionPath.h"
|
||||
#include "ClothingItemDefinition.generated.h"
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct NAKEDDESIRE_API FBodyPartCoverage
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
float Coverage = 1.0f;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
EBodyPart BodyPart = EBodyPart::Ass;
|
||||
};
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class ERestrictionType : uint8
|
||||
{
|
||||
BlockRun = 0,
|
||||
BlockCrouch = 1,
|
||||
BlockPhoneUsage = 2,
|
||||
BlockItemPickup = 3,
|
||||
BlockMasturbate = 4,
|
||||
BlockBoobsExpose = 5,
|
||||
BlockVaginaExpose = 6,
|
||||
BlockAnalExpose = 7,
|
||||
BlockSlotChange = 8,
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct NAKEDDESIRE_API FClothingRestriction
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
ERestrictionType RestrictionType = ERestrictionType::BlockRun;
|
||||
|
||||
UPROPERTY()
|
||||
EClothingSlotType AffectedSlot = EClothingSlotType::Anal;
|
||||
};
|
||||
|
||||
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 UClothingItemDefinition : public UItemDefinition
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual TSubclassOf<UItemInstance> GetInstanceClass() const override;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
EClothingSlotType SlotType;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
USkeletalMesh* SkeletalMesh;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TMap<FName, UMaterialInstance*> Materials;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
int BasePrice;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<FBodyPartCoverage> CoveredBodyParts;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (EditCondition = "SlotType == EClothingSlotType::Footwear", 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)
|
||||
TArray<FGarmentContainerSlot> ContainerSlots;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<FClothingRestriction> Restrictions;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<EBodyPart> HiddenBodyParts;
|
||||
};
|
||||
Reference in New Issue
Block a user