42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
// © 2025 Naked People Team. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GameFramework/Actor.h"
|
|
#include "LocationTrigger.generated.h"
|
|
|
|
class ULocationData;
|
|
class UBoxComponent;
|
|
|
|
// A tagged volume. On player overlap it reports enter / leave to ULocationSubsystem, which is the
|
|
// single authority on where the player is. Everything (session boundary, commission location
|
|
// constraints, etc.) consumes the subsystem — the trigger itself has no consumer-specific logic.
|
|
UCLASS()
|
|
class NAKEDDESIRE_API ALocationTrigger : public AActor
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess))
|
|
UBoxComponent* BoxTrigger;
|
|
|
|
UPROPERTY(EditAnywhere)
|
|
ULocationData* LocationData;
|
|
|
|
public:
|
|
ALocationTrigger();
|
|
|
|
ULocationData* GetLocationData() const;
|
|
|
|
protected:
|
|
virtual void BeginPlay() override;
|
|
|
|
private:
|
|
UFUNCTION()
|
|
void OnTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
|
|
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
|
|
|
|
UFUNCTION()
|
|
void OnTriggerEndOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
|
|
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);
|
|
}; |