Eile Mit Weile
Loading...
Searching...
No Matches
Player.hpp
Go to the documentation of this file.
1#ifndef EILEMITWEILE_PLAYER_HPP
2#define EILEMITWEILE_PLAYER_HPP
3
4#include <string>
5#include "common/serialization/uuid_generator.hpp"
6#include "rapidjson/document.h"
7#include "common/serialization/unique_serializable.hpp"
8#include "common/serialization/serializable_value.hpp"
9
15enum Color{
16 red,
17 yellow,
18 blue,
19 green
20};
21
28 public:
29 explicit Player(std::string name, SerializableValue<int>* color_idx);
30 explicit Player(std::string name);
31 Player(std::string id, std::string name);
33 ~Player();
35 std::string GetGameId();
36 void SetGameId(std::string game_id);
37 [[nodiscard]] unsigned int GetColorIdx() const;
38 void SetColorIdx(int color_idx);
39 [[nodiscard]] std::string GetPlayerName() const noexcept;
41 void WriteIntoJson(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) const override;
42 static Player* FromJson(const rapidjson::Value& json);
44 private:
45 Player(std::string id, SerializableValue<std::string>* name, SerializableValue<int>* color_idx);
51 std::string _game_id;
52};
53#endif //EILEMITWEILE_PLAYER_HPP
Color
Enum for the colors of the players.
Definition Player.hpp:15
Holds all relevant information of a player.
Definition Player.hpp:27
std::string GetPlayerName() const noexcept
Definition Player.cpp:52
void SetColorIdx(int color_idx)
Definition Player.cpp:48
static Player * FromJson(const rapidjson::Value &json)
Definition Player.cpp:70
std::string GetGameId()
Definition Player.cpp:36
std::string _game_id
Definition Player.hpp:51
unsigned int GetColorIdx() const
Definition Player.cpp:44
Player(std::string name, SerializableValue< int > *color_idx)
Definition Player.cpp:6
~Player()
Definition Player.cpp:28
void SetGameId(std::string game_id)
Definition Player.cpp:40
SerializableValue< int > * _color_idx
Definition Player.hpp:50
SerializableValue< std::string > * _player_name
Definition Player.hpp:48
void WriteIntoJson(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override
Definition Player.cpp:56
Color _color
Definition Player.hpp:49
A serializable value, used for writing values into json.
Definition serializable_value.hpp:28
Used to serialize game_state objects that need to be identifiable by a unique id.
Definition unique_serializable.hpp:14