FactoryClient.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include <Client.h>
  3. #include <Critical.h>
  4. #include <Either.h>
  5. #include <Network.h>
  6. #include <Point.h>
  7. #include <Text.h>
  8. #include <Vec3.h>
  9. #include <VecN.h>
  10. class FactoryClient : public Framework::ReferenceCounter
  11. {
  12. private:
  13. Network::SSLClient* client;
  14. Network::Client* foreground;
  15. Network::Client* background;
  16. Network::NetworkReader* foregroundReader;
  17. Network::NetworkReader* backgroundReader;
  18. Framework::Critical cs;
  19. Framework::Text ip;
  20. int bgReaderUsage;
  21. int fgReaderUsage;
  22. void disconnect();
  23. void loadServerInfo();
  24. public:
  25. FactoryClient();
  26. ~FactoryClient();
  27. bool connect(Framework::Text ip, unsigned short sslPort);
  28. int ping();
  29. int status(Framework::Text name, Framework::Text secret);
  30. int join(
  31. Framework::Text name, Framework::Text& secret, unsigned short port);
  32. Network::NetworkReader* getNextForegroundMessage();
  33. Network::NetworkReader* getNextBackgroundMessage();
  34. void endMessageReading(bool bg);
  35. void sendPlayerAction(const char* data, unsigned short length);
  36. void sendPlayerFaceDirection(Framework::Vec3<float> dir);
  37. void sendPlayerMovement(int flags);
  38. void entityAPIRequest(
  39. int entityId, const char* message, unsigned short length);
  40. void blockAPIRequest(
  41. Framework::Vec3<int> pos, const char* message, unsigned short length);
  42. void componentAPIRequest(
  43. int* address, int addrLen, const char* message, unsigned short length);
  44. void blockAPIRequest(int dimensionId,
  45. Framework::Vec3<int> pos,
  46. const char* message,
  47. unsigned short length);
  48. void chunkAPIRequest(
  49. Framework::Point center, const char* message, unsigned short length);
  50. void dimensionAPIRequest(const char* message, unsigned short length);
  51. void inventoryAPIRequest(
  52. Framework::Either<int, Framework::VecN<int, 4>> target,
  53. const char* message,
  54. unsigned short length);
  55. void uiRequest(
  56. Framework::Text dialogId, const char* message, unsigned short length);
  57. void craftingUIMLRequest(int itemTypeId);
  58. void sendChatMessage(Framework::Text message);
  59. void chatAPIRequest(const char* data, unsigned short length);
  60. void giveItemRequest(int itemTypeId, bool fullStack);
  61. bool isConnected();
  62. void leaveGame();
  63. };