33 return EventListenerComponent;
42 UFUNCTION(BlueprintCallable, Category =
"CheckPoint")
43 void SaveCheckPoint(AActor* PlayerActor);
45 UFUNCTION(BlueprintCallable, Category = "
CheckPoint")
46 void SendRespawnEvent(AActor* PlayerActor);
49 FORCEINLINE FTransform GetSpawnTransform()
const
51 return SpawnPointComponent ? SpawnPointComponent->GetComponentTransform() : GetActorTransform();
55 UPROPERTY(BlueprintAssignable, Category =
"CheckPoint")
56 FOnCheckPointSavedDelegate OnCheckPointSaved;
59 virtual
void BeginPlay() override;
60 virtual
void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
64 void HandleBoxBeginOverlap(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex,
bool bFromSweep, const FHitResult& SweepResult);
67 void ActivateOnBeginPlay();
71 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
72 bool bActivateOnBeginPlay = false;
75 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
76 bool bDetectOnce = true;
78 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
79 TObjectPtr<UBoxComponent> BoxComponent;
81 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
82 TObjectPtr<UStageEventListenerComponent> EventListenerComponent;
85 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
86 TObjectPtr<UStageEventSenderComponent> VisitEventSender;
89 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
90 TObjectPtr<UStageEventSenderComponent> RespawnEventSender;
92 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
CheckPoint")
93 TObjectPtr<USceneComponent> SpawnPointComponent;
95#if WITH_EDITORONLY_DATA
96 UPROPERTY(VisibleAnywhere)
97 TObjectPtr<UBillboardComponent> SpriteComponent;
101 bool bVisited =
false;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnCheckPointSavedDelegate, AActor *, ContactActor, float, SavedTimeSeconds, FVector, SavedLocation, ACheckPoint *, CheckPoint)