Game.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef GAME_H
  2. #define GAME_H
  3. #include "client/gui/StartGUI.h"
  4. #include "client/input/Controller.h"
  5. #include "client/rendering/RenderSettings.h"
  6. #include "client/rendering/Renderer.h"
  7. #include "client/rendering/ShaderMatrix.h"
  8. #include "common/block/BlockRegistry.h"
  9. #include "common/world/World.h"
  10. #include "gaming-core/input/TextInput.h"
  11. #include "gaming-core/network/Client.h"
  12. #include "gaming-core/utils/Clock.h"
  13. #include "gaming-core/utils/Size.h"
  14. #include "rendering/renderer/WorldRenderer.h"
  15. class Game final {
  16. public:
  17. enum State { START };
  18. Game(TextInput*& textInput, const Controller& controller, const Clock& fps,
  19. const Clock& tps, RenderSettings& renderSettings, const Size& size,
  20. Client& client);
  21. void tick();
  22. void renderWorld(float lag, ShaderMatrix& sm);
  23. void renderOverlay(float lag, ShaderMatrix& sm, Renderer& r);
  24. bool isRunning() const;
  25. void onConnect();
  26. void onDisconnect();
  27. void onPacket(InPacket& in);
  28. private:
  29. const Controller& controller;
  30. const Clock& fps;
  31. const Clock& tps;
  32. RenderSettings& renderSettings;
  33. const Size& size;
  34. Client& client;
  35. State state;
  36. BaseGUI baseGUI;
  37. StartGUI startGUI;
  38. Vector3 lastPos;
  39. Vector3 pos;
  40. Quaternion lastRotation;
  41. Quaternion rotation;
  42. BlockRegistry blockRegistry;
  43. World world;
  44. WorldRenderer worldRenderer;
  45. bool connected;
  46. };
  47. #endif