Refactor censorship
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include "EnhancedInputSubsystems.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Internationalization/Text.h"
|
||||
#include "NakedDesire/Censorship/CensorshipComponent.h"
|
||||
#include "NakedDesire/Clothing/ClothingItemDefinition.h"
|
||||
#include "NakedDesire/Clothing/ClothingItemInstance.h"
|
||||
#include "NakedDesire/Global/Constants.h"
|
||||
@@ -78,6 +79,8 @@ ANakedDesireCharacter::ANakedDesireCharacter()
|
||||
AnalCensorship = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Anal Censorship"));
|
||||
AnalCensorship->SetupAttachment(GetMesh(), FName(TEXT("pelvis")));
|
||||
|
||||
CensorshipComponent = CreateDefaultSubobject<UCensorshipComponent>(TEXT("Censorship Component"));
|
||||
|
||||
StimuliSourceComponent = CreateDefaultSubobject<UAIPerceptionStimuliSourceComponent>(TEXT("Stimuli Source Component"));
|
||||
InteractionComponent = CreateDefaultSubobject<UInteractionComponent>(TEXT("Interaction Component"));
|
||||
}
|
||||
@@ -153,12 +156,11 @@ void ANakedDesireCharacter::BeginPlay()
|
||||
StimuliSourceComponent->RegisterForSense(TSubclassOf<UAISense_Sight>());
|
||||
StimuliSourceComponent->RegisterWithPerceptionSystem();
|
||||
|
||||
ClothingManager->OnClothingEquip.AddUniqueDynamic(this, &ANakedDesireCharacter::OnClothingEquip);
|
||||
ClothingManager->OnClothingUnequip.AddUniqueDynamic(this, &ANakedDesireCharacter::OnClothingUnequip);
|
||||
|
||||
HUD = Cast<ANakedDesireHUD>(UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetHUD());
|
||||
// Initialize after Super::BeginPlay so clothing hydration has populated the
|
||||
// equipped set; the component recomputes censorship from that final state.
|
||||
CensorshipComponent->Initialize(ClothingManager, BoobLCensorship, BoobRCensorship, VaginaCensorship, AnalCensorship);
|
||||
|
||||
UNakedDesireUserSettings::GetNakedDesireUserSettings()->OnSettingsChanged.AddUniqueDynamic(this, &ANakedDesireCharacter::OnSettingsChanged);
|
||||
HUD = Cast<ANakedDesireHUD>(UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetHUD());
|
||||
}
|
||||
|
||||
UAISense_Sight::EVisibilityResult ANakedDesireCharacter::CanBeSeenFrom(const FCanBeSeenFromContext& Context,
|
||||
@@ -225,70 +227,6 @@ void ANakedDesireCharacter::LogTest()
|
||||
UE_LOG(LogTemp, Warning, TEXT("ANakedDesireCharacter::LogTest %s"), *ClothingItemInstance->GetInstanceId().ToString());
|
||||
}
|
||||
|
||||
void ANakedDesireCharacter::OnClothingEquip(UClothingItemInstance* ClothingItemInstance)
|
||||
{
|
||||
if (ClothingItemInstance->GetClothingItemDefinition()->HiddenBodyParts.Contains(EBodyPart::Ass))
|
||||
{
|
||||
AnalCensorship->SetVisibility(false);
|
||||
}
|
||||
if (ClothingItemInstance->GetClothingItemDefinition()->HiddenBodyParts.Contains(EBodyPart::Genitals))
|
||||
{
|
||||
VaginaCensorship->SetVisibility(false);
|
||||
}
|
||||
if (ClothingItemInstance->GetClothingItemDefinition()->HiddenBodyParts.Contains(EBodyPart::Boobs))
|
||||
{
|
||||
BoobLCensorship->SetVisibility(false);
|
||||
BoobRCensorship->SetVisibility(false);
|
||||
}
|
||||
}
|
||||
|
||||
void ANakedDesireCharacter::OnClothingUnequip(UClothingItemInstance* ClothingItemInstance)
|
||||
{
|
||||
if (!UNakedDesireUserSettings::GetNakedDesireUserSettings()->GetIsCensorshipEnabled() && !IS_DEMO)
|
||||
return;
|
||||
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Ass))
|
||||
{
|
||||
AnalCensorship->SetVisibility(true);
|
||||
}
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Genitals))
|
||||
{
|
||||
VaginaCensorship->SetVisibility(true);
|
||||
}
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Boobs))
|
||||
{
|
||||
BoobLCensorship->SetVisibility(true);
|
||||
BoobRCensorship->SetVisibility(true);
|
||||
}
|
||||
}
|
||||
|
||||
void ANakedDesireCharacter::OnSettingsChanged(UNakedDesireUserSettings* Settings)
|
||||
{
|
||||
if (Settings->GetIsCensorshipEnabled())
|
||||
{
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Ass))
|
||||
{
|
||||
AnalCensorship->SetVisibility(true);
|
||||
}
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Genitals))
|
||||
{
|
||||
VaginaCensorship->SetVisibility(true);
|
||||
}
|
||||
if (ClothingManager->IsBodyPartExposed(EBodyPart::Boobs))
|
||||
{
|
||||
BoobLCensorship->SetVisibility(true);
|
||||
BoobRCensorship->SetVisibility(true);
|
||||
}
|
||||
}
|
||||
else if (!IS_DEMO)
|
||||
{
|
||||
AnalCensorship->SetVisibility(false);
|
||||
VaginaCensorship->SetVisibility(false);
|
||||
BoobLCensorship->SetVisibility(false);
|
||||
BoobRCensorship->SetVisibility(false);
|
||||
}
|
||||
}
|
||||
|
||||
void ANakedDesireCharacter::OnLook(const FInputActionValue& Value)
|
||||
{
|
||||
const FVector2D MouseValue = Value.Get<FVector2D>();
|
||||
|
||||
Reference in New Issue
Block a user