Client.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef CLIENT_H
  2. #define CLIENT_H
  3. #include "../engine/Wrapper.h"
  4. #include "../engine/KeyManager.h"
  5. #include "../engine/MouseManager.h"
  6. #include "../engine/Clock.h"
  7. #include "../engine/Shader.h"
  8. #include "../engine/DirectRenderer.h"
  9. #include "../math/Camera3D.h"
  10. #include "../world/World.h"
  11. #include "../world/IChunkProvider.h"
  12. #include "rendering/ClientChunkProvider.h"
  13. #include "rendering/ChunkRenderer.h"
  14. #include "rendering/entity/EntityRenderer.h"
  15. using namespace std;
  16. class Client : public IClient
  17. {
  18. public:
  19. Client();
  20. virtual ~Client();
  21. void tick() override;
  22. void render3DShadowTick(float lag) override;
  23. void render3DTick(float lag) override;
  24. void render2DTick(float lag) override;
  25. void onKeyEvent(int key, int scancode, int action, int mods) override;
  26. void onMouseMove(double x, double y) override;
  27. void onMouseClick(int button, int action, int mods) override;
  28. private:
  29. double transformMouse(double in);
  30. static const int KEY_LEFT = 0;
  31. static const int KEY_RIGHT = 1;
  32. static const int KEY_UP = 2;
  33. static const int KEY_DOWN = 3;
  34. static const int KEY_JUMP = 4;
  35. static const int KEY_SNEAK = 5;
  36. static const int KEY_TEST = 10;
  37. static const int MOUSE_LEFT = 0;
  38. double oldMouseX = 0;
  39. double oldMouseY = 0;
  40. double diffMouseX = 0;
  41. double diffMouseY = 0;
  42. bool mouseTrapped = true;
  43. const double MOUSE_BORDER = 1.0;
  44. Clock tps;
  45. Clock fps;
  46. KeyManager keyManager;
  47. MouseManager mouseManager;
  48. ChunkRenderer chunkRenderer;
  49. ClientChunkProvider chunkProvider;
  50. World world;
  51. Camera3D camera;
  52. Shader shader;
  53. DirectRenderer directRenderer;
  54. Vector3D position;
  55. float lengthAngle = 0;
  56. float widthAngle = 0;
  57. EntityRenderer entity;
  58. };
  59. #endif