Updates
This commit is contained in:
@@ -6,10 +6,47 @@
|
||||
#include "BodyPart.h"
|
||||
#include "ClothingSlotType.h"
|
||||
#include "Engine/DataAsset.h"
|
||||
#include "NakedDesire/Player/PrivateBodyPartType.h"
|
||||
#include "NakedDesire/Progression/ProgressionPath.h"
|
||||
#include "ClothingItem.generated.h"
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct NAKEDDESIRE_API FBodyPartCoverage
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
float Coverage = 1.0f;
|
||||
|
||||
UPROPERTY()
|
||||
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
|
||||
{
|
||||
@@ -58,9 +95,9 @@ public:
|
||||
int BasePrice;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<EPrivateBodyPartType> CoveredBodyParts; // TODO: Add coverage per body part
|
||||
TArray<FBodyPartCoverage> CoveredBodyParts;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (EditCondition = "SlotType == EClothingSlotType::Shoes", Category = "Shoes"))
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (EditCondition = "SlotType == EClothingSlotType::Footwear", Category = "Shoes"))
|
||||
float ShoesOffset = 0.0f;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
@@ -72,15 +109,12 @@ public:
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<EBodyPart> CanExpose;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
bool IsRestrictive;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
float Coverage = 1.0f;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
bool IsUnderwear;
|
||||
TArray<FGarmentContainerSlot> ContainerSlots;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||
TArray<FGarmentContainerSlot> ContainerSlots;
|
||||
TArray<FClothingRestriction> Restrictions;
|
||||
};
|
||||
|
||||
@@ -11,11 +11,11 @@ UClothingManager::UClothingManager()
|
||||
PrimaryComponentTick.bCanEverTick = false;
|
||||
}
|
||||
|
||||
bool UClothingManager::IsBodyTypeExposed(const EPrivateBodyPartType PrivateBodyPartType)
|
||||
bool UClothingManager::IsBodyTypeExposed(const EBodyPart BodyPart)
|
||||
{
|
||||
for (const auto& ClothingSlot : ClothingSlots)
|
||||
{
|
||||
if (ClothingSlot.ClothingItemInstance && ClothingSlot.ClothingItemInstance->GetClothingItem()->CoveredBodyParts.Contains(PrivateBodyPartType))
|
||||
if (ClothingSlot.ClothingItemInstance) // TODO: Add covered body part resolution
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ void UClothingManager::HydrateClothing(UGlobalSaveGameData* SaveGameData)
|
||||
|
||||
float UClothingManager::GetHeelHeight()
|
||||
{
|
||||
if (FClothingSlotData ClothingSlotData; GetClothingSlotData(EClothingSlotType::Shoes, ClothingSlotData))
|
||||
if (FClothingSlotData ClothingSlotData; GetClothingSlotData(EClothingSlotType::Footwear, ClothingSlotData))
|
||||
{
|
||||
if (ClothingSlotData.ClothingItemInstance)
|
||||
{
|
||||
@@ -173,5 +173,5 @@ bool UClothingManager::IsClothingTypeOn(const EClothingSlotType ClothingType)
|
||||
|
||||
bool UClothingManager::IsPartiallyNaked()
|
||||
{
|
||||
return IsBodyTypeExposed(EPrivateBodyPartType::BackBottom) || IsBodyTypeExposed(EPrivateBodyPartType::FrontBottom) || IsBodyTypeExposed(EPrivateBodyPartType::FrontTop);
|
||||
return IsBodyTypeExposed(EBodyPart::Ass) || IsBodyTypeExposed(EBodyPart::Genitals) || IsBodyTypeExposed(EBodyPart::Boobs);
|
||||
}
|
||||
|
||||
@@ -3,13 +3,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "BodyPart.h"
|
||||
#include "ClothingSlotData.h"
|
||||
#include "Components/ActorComponent.h"
|
||||
#include "NakedDesire/Player/PrivateBodyPartType.h"
|
||||
#include "ClothingManager.generated.h"
|
||||
|
||||
// TODO: Check clothing colors
|
||||
|
||||
class UGlobalSaveGameData;
|
||||
class AClothingPickup;
|
||||
class UClothingItemInstance;
|
||||
@@ -53,7 +51,7 @@ public:
|
||||
bool IsPartiallyNaked();
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
bool IsBodyTypeExposed(EPrivateBodyPartType PrivateBodyPartType);
|
||||
bool IsBodyTypeExposed(EBodyPart BodyPart);
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void TakeClothing(UClothingItemInstance* ClothingItemInstance);
|
||||
|
||||
@@ -7,18 +7,22 @@
|
||||
UENUM(BlueprintType)
|
||||
enum class EClothingSlotType : uint8
|
||||
{
|
||||
Nipples,
|
||||
Anal,
|
||||
Vagina,
|
||||
Nipples UMETA(ToolTip = "Sex Toy slot only"),
|
||||
Anal UMETA(ToolTip = "Sex Toy slot only"),
|
||||
Vagina UMETA(ToolTip = "Sex Toy slot only"),
|
||||
Head,
|
||||
Neck,
|
||||
Face,
|
||||
Eyes,
|
||||
Body,
|
||||
BodySuit,
|
||||
Top,
|
||||
Bottom,
|
||||
Bra,
|
||||
Panties,
|
||||
UnderwearTop,
|
||||
UnderwearBottom,
|
||||
Socks,
|
||||
Shoes,
|
||||
Footwear,
|
||||
Outerwear,
|
||||
WristRestraint,
|
||||
AnkleRestraint,
|
||||
NeckRestraint,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user