Game.h 1.3 KB

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