#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; int bgReaderUsage; int fgReaderUsage; void disconnect(); public: FactoryClient(); ~FactoryClient(); bool connect(Text ip, short port, int accountId, Text secret); Network::NetworkReader* getNextForegroundMessage(); Network::NetworkReader* getNextBackgroundMessage(); void endMessageReading(bool bg); void sendPlayerAction(char* data, unsigned short length); void sendPlayerMovement(MovementFrame& frame); void entityAPIRequest(int entityId, char* message, unsigned short length); void chunkAPIRequest(Framework::Punkt center, char* message, unsigned short length); void inventoryAPIRequest(Framework::Either> target, char* message, unsigned short length); };