Game.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef GAME_H
  2. #define GAME_H
  3. #include "client/gui/StartGUI.h"
  4. #include "client/input/Controller.h"
  5. #include "client/rendering/Renderer.h"
  6. #include "client/rendering/ShaderMatrix.h"
  7. #include "common/block/BlockRegistry.h"
  8. #include "common/world/World.h"
  9. #include "rendering/renderer/WorldRenderer.h"
  10. class Game final {
  11. const Controller& controller;
  12. typedef void (Game::*TickState)();
  13. TickState tickState;
  14. typedef void (Game::*RenderState)(float, ShaderMatrix&, Renderer&);
  15. RenderState renderState;
  16. BaseGUI baseGUI;
  17. StartGUI startGUI;
  18. Vector3 lastPos;
  19. Vector3 pos;
  20. Quaternion lastRotation;
  21. Quaternion rotation;
  22. WorldRenderer worldRenderer;
  23. public:
  24. static Game* game;
  25. static BlockRegistry blockRegistry;
  26. static World world;
  27. Game(const Controller& controller);
  28. void tick();
  29. void renderWorld(float lag, ShaderMatrix& sm);
  30. void renderOverlay(float lag, ShaderMatrix& sm, Renderer& r);
  31. bool isRunning() const;
  32. private:
  33. void tickConnectState();
  34. void tickConnectedState();
  35. void renderConnectState(float lag, ShaderMatrix& sm, Renderer& r);
  36. void renderConnectedState(float lag, ShaderMatrix& sm, Renderer& r);
  37. };
  38. #endif