]> git.localhorst.tv Git - blank.git/blobdiff - src/net/Client.hpp
fix block placement
[blank.git] / src / net / Client.hpp
index 63c3fdd5e9f7d1aa7ae020fe4d22ef19b0031ce4..ee848c0d74729db9976cf382ccfe8ad1d83b512d 100644 (file)
@@ -2,6 +2,7 @@
 #define BLANK_NET_CLIENT_HPP_
 
 #include "Connection.hpp"
+#include "../app/IntervalTimer.hpp"
 
 #include <string>
 #include <SDL_net.h>
@@ -20,23 +21,30 @@ public:
        };
 
 public:
-       Client(const Config &, World &);
+       explicit Client(const Config &);
        ~Client();
 
        void Handle();
 
        void Update(int dt);
 
-       bool TimedOut() { return conn.TimedOut(); }
+       Connection &GetConnection() noexcept { return conn; }
+       const Connection &GetConnection() const noexcept { return conn; }
+
+       std::uint16_t SendPing();
+       std::uint16_t SendLogin(const std::string &);
+       std::uint16_t SendPart();
+       // this may not send the update at all, in which case it returns -1
+       int SendPlayerUpdate(const Entity &);
 
 private:
        void HandlePacket(const UDPpacket &);
 
 private:
-       World &world;
        Connection conn;
        UDPsocket client_sock;
        UDPpacket client_pack;
+       IntervalTimer update_timer;
 
 };