DeskSim v2 0.1
Train simulator prototype created for Lokførerskolen
CentralSignalController.h
1/****************************************************************/
2/***
3 * @file CentralSignalController.h
4 * @brief Contains the central controller 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 "GameFramework/Actor.h"
16
17#include "BasicSignal.h"
18#include <DeskSimV2/Trains/Train.h>
19
20#include "CentralSignalController.generated.h"
21
29UCLASS()
30class DESKSIMV2_API ACentralSignalController : public AActor
31{
32 GENERATED_BODY()
33
34public:
35 // Sets default values for this actor's properties
37
38protected:
39 // Called when the game starts or when spawned
40 virtual void BeginPlay() override;
41
42public:
43 // Called every frame
44 virtual void Tick(float DeltaTime) override;
45
46
47 UFUNCTION()
48 void FindAllSignals();
49
50 UFUNCTION()
51 void FindAllTrains();
52
53 UFUNCTION(BlueprintCallable, Category = "Controller")
54 void ReceiveInputSignal(FName SignalID, ESignalType SignalType, ESignalStatus Status);
55
56 UFUNCTION(BlueprintCallable, Category = "Controller")
57 void ReceiveInputStatus(FName TrainID);
58
59 UFUNCTION()
60 void SendUpdatedSignal(FName SignalID, ESignalType SignalType, ESignalStatus Status);
61
62 UFUNCTION()
63 void UpdateRelatedSignals(FName SignalID, ESignalType SignalType, ESignalStatus Status);
64
65 UFUNCTION()
66 void SendTrainEmergencyStop(FName TrainID);
67
68 UFUNCTION(CallInEditor, Category = "Controller")
69 void TestAllEmergencyStop();
70
72 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Controller")
73 TSubclassOf<ABasicSignal> DwarfSignalBP;
74
76 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Controller")
77 TSubclassOf<ABasicSignal> MainSignalBP;
78
80 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Controller")
81 TSubclassOf<ABasicSignal> ForwardSignalBP;
82
84 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Controller")
85 TSubclassOf<ATrain> TrainClass;
86
88 TArray<AActor*> DwarfSignalActors;
89
91 TArray<AActor*> MainSignalActors;
92
94 TArray<AActor*> ForwardSignalActors;
95
97 TArray<AActor*> AllSignalActors;
98
100 TArray<AActor*> AllTrainActors;
101};
Basic signal class, contains functionality to setup and use signal lights.
Definition: BasicSignal.h:91
The central signal controller used for communication.
Definition: CentralSignalController.h:31
Definition: Train.h:17