OpenAstra
 
Loading...
Searching...
No Matches
gamemanager.h
1#ifndef ORCHESTRATOR_H
2#define ORCHESTRATOR_H
3
4#include <memory>
5
6#include "gameobject.h"
7
8class StarSystem;
9class Player;
10
11class GameManager
12 : public GameObject
13{
14public:
15 static constexpr int64_t OpenAstraStorageVersion = 0x0000000000000001ULL;
16
17 static constexpr char OpenAstraCategory[] = "OpenAstra";
18 static constexpr char OpenAstraType[] = "GameManager";
19
20 static std::shared_ptr<GameObject> createFromDump( ObjectId id, const std::string &type);
21
22 static std::shared_ptr<GameManager> game_manager;
23
24 GameManager( bool undump = false );
25 ~GameManager();
26
27 std::shared_ptr<Player> createPlayer( const std::string& player_name );
28 std::shared_ptr<Player> getPlayerByName( const std::string& player_name );
29 std::shared_ptr<Player> getPlayerById( ObjectId id );
30
31 std::shared_ptr<StarSystem> getStarsystemById( ObjectId id );
32
33
34 virtual void tick(double tick_s, double total_time_s );
35
36 double getCurrentTime() const;
37
38 std::map<ObjectId, std::shared_ptr<Player>> _players;
39
40private:
41 std::map<ObjectId, std::shared_ptr<StarSystem>> _starsystems;
42
43 double _last_dump_s;
44
45 virtual void _finalizeUndump() final;
46 virtual void _finalizeDump() final;
47
48};
49
50#endif // ORCHESTRATOR_H
static std::shared_ptr< GameObject > createFromDump(ObjectId id, const std::string &type)
top level disk serialization identifier
Definition gamemanager.cpp:9
static constexpr char OpenAstraCategory[]
serialization version
Definition gamemanager.h:17
static constexpr char OpenAstraType[]
top level disk serialization identifier
Definition gamemanager.h:18
GameObject(const std::string &category, ObjectId id, const std::string &type)
Create a GameObject object.
Definition gameobject.cpp:38
const std::string & type() const
return the type (ship_xxx, station_xxx, planet_xxx...)
Definition gameobject.h:213
Definition gameid.hpp:9
Definition player.h:14
Definition starsystem.h:13