#pragma once #include #include #include #include #include #include #include #include #include "Entity.h" class FactoryClient : public Framework::ReferenceCounter { private: Network::SSLKlient* client; Network::Klient* foreground; Network::Klient* background; Network::NetworkReader* foregroundReader; Network::NetworkReader* backgroundReader; Framework::Critical cs; Framework::Text ip; int bgReaderUsage; int fgReaderUsage; void disconnect(); void loadServerInfo(); public: FactoryClient(); ~FactoryClient(); bool connect(Framework::Text ip, unsigned short sslPort); int ping(); int status(Framework::Text name, Framework::Text secret); int join( Framework::Text name, Framework::Text& secret, unsigned short port); Network::NetworkReader* getNextForegroundMessage(); Network::NetworkReader* getNextBackgroundMessage(); void endMessageReading(bool bg); void sendPlayerAction(const char* data, unsigned short length); void sendPlayerMovement(MovementFrame& frame); void entityAPIRequest( int entityId, const char* message, unsigned short length); void blockAPIRequest( Vec3 pos, const char* message, unsigned short length); void blockAPIRequest(int dimensionId, Vec3 pos, const char* message, unsigned short length); void chunkAPIRequest( Framework::Punkt center, const char* message, unsigned short length); void dimensionAPIRequest(const char* message, unsigned short length); void inventoryAPIRequest( Framework::Either> target, const char* message, unsigned short length); void uiRequest( Framework::Text dialogId, const char* message, unsigned short length); void craftingUIMLRequest(int itemTypeId); void sendChatMessage(Framework::Text message); void chatAPIRequest(const char* data, unsigned short length); bool isConnected(); void leaveGame(); };