DeskSim v2 0.1
Train simulator prototype created for Lokførerskolen
TrainTriggerBox.h
1/****************************************************************/
2/***
3 * @file TrainTriggerBox.h
4 * @brief Base class for trigger box containing some common functionality and enums.
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 "Engine/TriggerBox.h"
16
17#include "CentralSignalController.h"
18#include "BasicSignal.h"
19#include <DeskSimV2/Trains/Train.h>
20
21#include "TrainTriggerBox.generated.h"
22
26UENUM(BlueprintType)
27enum class ETriggerSignalType : uint8
28{
29 WaitStoppedInZone,
30 WaitDurationInZone,
31 InsideZone,
32 NotInsideZone
33};
34
38UENUM(BlueprintType)
39enum class ETriggerStatusType : uint8
40{
41 EmergencyIf,
42 EmergencyIfNot
43};
44
52UCLASS(Blueprintable, abstract)
53class DESKSIMV2_API ATrainTriggerBox : public ATriggerBox
54{
55 GENERATED_BODY()
56
57public:
58
60
61protected:
62
63 // Called when the game starts or when spawned
64 virtual void BeginPlay();
65
66 // Called before the actor is destroyed
67 virtual void EndPlay(EEndPlayReason::Type EndPlayReason);
68
69public:
70
71 // Called every frame
72 virtual void Tick(float DeltaTime);
73
74 UFUNCTION()
75 virtual void OnOverlapBegin(class AActor* OverlappedActor, class AActor* OtherActor);
76
77 UFUNCTION()
78 virtual void OnOverlapEnd(class AActor* OverlappedActor, class AActor* OtherActor);
79
80
81
83 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Controller")
84 TSubclassOf<ACentralSignalController> CentralControllerClass;
85
87 UPROPERTY(BlueprintReadWrite, Category = "Controller")
88 ACentralSignalController* CentralController;
89
91 UPROPERTY(BlueprintReadWrite, Category = "Controller")
92 ATrain* Train;
93
94 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller")
95 ESignalType SignalType;
96
97 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Controller")
98 FName SignalID;
99
100
101
102
103};
The central signal controller used for communication.
Definition: CentralSignalController.h:31
Definition: Train.h:17
Base class containing some common functionality to be extended.
Definition: TrainTriggerBox.h:54