Game.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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 "input/TextInput.h"
  11. #include "network/Client.h"
  12. #include "rendering/renderer/WorldRenderer.h"
  13. #include "utils/Clock.h"
  14. #include "utils/Size.h"
  15. class Game final {
  16. const Controller& controller;
  17. const Clock& fps;
  18. const Clock& tps;
  19. RenderSettings& renderSettings;
  20. const Size& size;
  21. Client& client;
  22. typedef void (Game::*TickState)();
  23. TickState tickState;
  24. typedef void (Game::*RenderState)(float, ShaderMatrix&, Renderer&);
  25. RenderState renderState;
  26. BaseGUI baseGUI;
  27. StartGUI startGUI;
  28. Vector3 lastPos;
  29. Vector3 pos;
  30. Quaternion lastRotation;
  31. Quaternion rotation;
  32. BlockRegistry blockRegistry;
  33. World world;
  34. WorldRenderer worldRenderer;
  35. public:
  36. Game(TextInput*& textInput, const Controller& controller, const Clock& fps,
  37. const Clock& tps, RenderSettings& renderSettings, const Size& size,
  38. Client& client);
  39. void tick();
  40. void renderWorld(float lag, ShaderMatrix& sm);
  41. void renderOverlay(float lag, ShaderMatrix& sm, Renderer& r);
  42. bool isRunning() const;
  43. void onConnect();
  44. void onDisconnect();
  45. void onPacket(InPacket& in);
  46. private:
  47. void tickConnectState();
  48. void tickConnectedState();
  49. void renderConnectState(float lag, ShaderMatrix& sm, Renderer& r);
  50. void renderConnectedState(float lag, ShaderMatrix& sm, Renderer& r);
  51. };
  52. #endif