// © 2025 Naked People Team. All Rights Reserved. #include "LocationTrigger.h" #include "Components/BoxComponent.h" #include "NakedDesire/Global/SessionManagerSubsystem.h" #include "NakedDesire/Player/NakedDesireCharacter.h" ALocationTrigger::ALocationTrigger() { PrimaryActorTick.bCanEverTick = false; BoxTrigger = CreateDefaultSubobject("Box Trigger"); RootComponent = BoxTrigger; } ULocationData* ALocationTrigger::GetLocationData() const { return LocationData; } void ALocationTrigger::BeginPlay() { Super::BeginPlay(); if (bIsApartment) { BoxTrigger->OnComponentBeginOverlap.AddDynamic(this, &ALocationTrigger::OnTriggerBeginOverlap); BoxTrigger->OnComponentEndOverlap.AddDynamic(this, &ALocationTrigger::OnTriggerEndOverlap); } } void ALocationTrigger::OnTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) { if (!OtherActor || !OtherActor->IsA()) return; if (USessionManagerSubsystem* SessionManager = GetWorld()->GetSubsystem()) { SessionManager->NotifyEnteredApartment(); } } void ALocationTrigger::OnTriggerEndOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex) { if (!OtherActor || !OtherActor->IsA()) return; if (USessionManagerSubsystem* SessionManager = GetWorld()->GetSubsystem()) { SessionManager->NotifyLeftApartment(); } }