DeskSim v2 0.1
Train simulator prototype created for Lokførerskolen
TrainSignalTriggerBox.h
1/****************************************************************/
2/***
3 * @file TrainSignalTriggerBox.h
4 * @brief Contains the signal trigger box class
5 *
6 * @author Endre Heksum
7 * @date March 2022
8 *********************************************************************/
9
10// Copyright 2022 Thomas Arinesalingam, John Ole Bjerke, Endre Heksum & Henrik Markengbakken Karlsen . All Rights Reserved.
11
12#pragma once
13
14#include "CoreMinimal.h"
15#include "TrainTriggerBox.h"
16#include "TrainSignalTriggerBox.generated.h"
17
25UCLASS()
26class DESKSIMV2_API ATrainSignalTriggerBox : public ATrainTriggerBox
27{
28 GENERATED_BODY()
29
30public:
31
33
34protected:
35 // Called when the game starts or when spawned
36 void BeginPlay() override;
37
38 // Called before the actor is destroyed
39 void EndPlay(EEndPlayReason::Type EndPlayReason) override;
40
41
42public:
43 // Called every frame
44 void Tick(float DeltaTime) override;
45
46 //UFUNCTION()
47 void OnOverlapBegin(class AActor* OverlappedActor, class AActor* OtherActor) override;
48
49 //UFUNCTION()
50 void OnOverlapEnd(class AActor* OverlappedActor, class AActor* OtherActor) override;
51
52
53 UFUNCTION()
54 void SendSignalToController(ESignalStatus NewSignalStatus);
55
56 UFUNCTION()
57 void WaitStoppedInZone(bool& bValid, bool bTimerDone = false);
58
59 UFUNCTION()
60 void WaitDurationZone();
61
62 UFUNCTION()
63 void InsideZone();
64
65 UFUNCTION()
66 void NotInsideZone();
67
68
69protected:
70
71 bool bDoOnce = true;
72
74 FTimerHandle WaitTimerHandle;
75
76public:
77
79 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller")
80 ETriggerSignalType SignalTrigger;
81
83 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller")
84 float WaitDuration;
85
87 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller")
88 ESignalStatus NewSignal;
89};
Signal trigger box class which is used to send signal updates.
Definition: TrainSignalTriggerBox.h:27
FTimerHandle WaitTimerHandle
Timer handle used to manage timers.
Definition: TrainSignalTriggerBox.h:74
Base class containing some common functionality to be extended.
Definition: TrainTriggerBox.h:54