Terminus
abstractplayer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 #include <QVector3D>
6 
7 #include <util/timer.h>
8 #include <world/camera.h>
9 #include <world/world.h>
10 
11 namespace terminus
12 {
13 
14 class AbstractWagon;
15 class Train;
16 
22 {
23 public:
24  AbstractPlayer(World & world, Train * train);
25 
26  Camera & camera();
27 
28  Train * train();
29 
30  bool hasWon();
31  bool hasLost();
32 
33  void toggleCameraLock();
34 
35  unsigned int selectedWagonIndex() const;
36  void switchToNextWagon();
37  void switchToPreviousWagon();
38  void switchToWagon(unsigned int wagonIndex);
39 
43  virtual void primaryAction();
44 
49  virtual void primaryActionDebug();
50 
51  virtual void animateHit();
52 
53  virtual void update();
54 
55 protected:
57 
58 protected:
60 
63 
66 
67  unsigned int m_selectedWagonIndex;
68 };
69 }
virtual void update()
Definition: abstractplayer.cpp:102
bool hasWon()
Definition: abstractplayer.cpp:133
bool hasLost()
Definition: abstractplayer.cpp:138
virtual void primaryActionDebug()
Triggers the primary debug action of the currently selected wagon (typically the primary action witho...
Definition: abstractplayer.cpp:84
virtual void animateHit()
Definition: abstractplayer.cpp:89
World & m_world
Definition: abstractplayer.h:59
Train * m_train
Definition: abstractplayer.h:62
bool m_animationInProgress
Definition: abstractplayer.h:64
Timer::TimerID m_animationTimer
Definition: abstractplayer.h:65
unsigned int m_selectedWagonIndex
Definition: abstractplayer.h:67
virtual void primaryAction()
Triggers the primary action of the currently selected wagon.
Definition: abstractplayer.cpp:79
void switchToNextWagon()
Definition: abstractplayer.cpp:49
AbstractWagon * selectedWagon()
Definition: abstractplayer.cpp:123
void switchToWagon(unsigned int wagonIndex)
Definition: abstractplayer.cpp:73
void toggleCameraLock()
Definition: abstractplayer.cpp:32
Camera m_camera
Definition: abstractplayer.h:61
void switchToPreviousWagon()
Definition: abstractplayer.cpp:61
unsigned int selectedWagonIndex() const
Definition: abstractplayer.cpp:44
unsigned int TimerID
Definition: timer.h:21
Train * train()
Definition: abstractplayer.cpp:128
The World class represents a running game instance and contains all graphical (3D) elements of the sc...
Definition: world.h:46
AbstractPlayer(World &world, Train *train)
Definition: abstractplayer.cpp:15
Definition: eventhandler.cpp:18
The AbstractWagon class provides a common interface for all wagon types and contains common functiona...
Definition: abstractwagon.h:25
The Camera class manages view and projection matrices that define a view of a 3D scene.
Definition: camera.h:26
Camera & camera()
Definition: abstractplayer.cpp:27
The AbstractPlayer class is the base class for interacting with a train and a camera.
Definition: abstractplayer.h:21
The Train class works as a logical container for all wagons one train consists of.
Definition: train.h:25