]> git.tdb.fi Git - libs/game.git/blob - source/game/component.h
6914c15282383a004b09117875e191dd56f6a6cd
[libs/game.git] / source / game / component.h
1 #ifndef MSP_GAME_COMPONENT_H_
2 #define MSP_GAME_COMPONENT_H_
3
4 #include <msp/time/timedelta.h>
5 #include "handle.h"
6
7 namespace Msp::Game {
8
9 class Entity;
10
11 class Component
12 {
13 protected:
14         Handle<Entity> entity;
15
16         Component(Handle<Entity>);
17 public:
18         virtual ~Component() = default;
19
20         Handle<Entity> get_entity() const { return entity; }
21
22         virtual void pre_tick() { }
23         virtual void tick(Time::TimeDelta) { }
24         virtual void post_tick() { }
25 };
26
27 } // namespace Msp::Game
28
29 #endif