summaryrefslogtreecommitdiffstats
path: root/src/gamestate/Game.hpp
blob: adf9059b87791a9c0d337a30c1c0a05f11095d86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#pragma once

#include "../utility/Vector.hpp"
#include "../network/NetworkClient.hpp"
#include "../world/World.hpp"
#include "../graphics/Display.hpp"

class Game {
public:
    Game();

    ~Game();

    void Exec();

private:
    //utility variables
    NetworkClient *m_nc;
    std::thread m_ncThread;
    bool m_exit = false;
    ConnectionState m_networkState = ConnectionState::Handshaking;
    Display *m_display;
    std::thread m_gameThread;

    //utility methods
    void ParsePackets();
    void MainLoop();

    //GameState update - condVars
    std::condition_variable gameStartWaiter;

    //game state variables
    World m_world;

    std::string g_PlayerUuid;
    std::string g_PlayerName;
    int g_PlayerEid;
    byte g_Gamemode;
    byte g_Difficulty;
    int g_Dimension;
    byte g_MaxPlayers;
    std::string g_LevelType;
    bool g_ReducedDebugInfo;
    Vector g_SpawnPosition;
    bool g_PlayerInvulnerable;
    bool g_PlayerFlying;
    bool g_PlayerAllowFlying;
    bool g_PlayerCreativeMode;
    int g_PlayerFlyingSpeed;
    int g_PlayerFovModifier;
    bool g_IsGameStarted = false;
    float g_PlayerPitch;
    float g_PlayerYaw;
    double g_PlayerX;
    double g_PlayerY;
    double g_PlayerZ;
};