]> git.localhorst.tv Git - blank.git/blobdiff - src/server/ClientConnection.hpp
decrease packet frequency
[blank.git] / src / server / ClientConnection.hpp
index 11670bcee6da3e8e4fc4c5117899e327bcd1d0e0..bd42241d9974897a8210afc3479e500c3e6e1c53 100644 (file)
@@ -46,7 +46,7 @@ public:
        }
        /// send the previously prepared packet
        std::uint16_t Send();
-       /// send the previously prepared packet of non-default length
+       /// send the previously prepared packet of given payload length
        std::uint16_t Send(std::size_t len);
 
        void AttachPlayer(Player &);
@@ -83,12 +83,16 @@ private:
        void On(const Packet::Login &) override;
        void On(const Packet::Part &) override;
        void On(const Packet::PlayerUpdate &) override;
+       void On(const Packet::Message &) override;
 
+       void CheckEntities();
        bool CanSpawn(const Entity &) const noexcept;
        bool CanDespawn(const Entity &) const noexcept;
 
        void SendSpawn(SpawnStatus &);
        void SendDespawn(SpawnStatus &);
+       /// true if entity updates are pushed to the client this frame
+       bool SendingUpdates() const noexcept;
        void QueueUpdate(SpawnStatus &);
        void SendUpdates();
 
@@ -105,15 +109,17 @@ private:
        unsigned int confirm_wait;
 
        std::vector<SpawnStatus *> entity_updates;
+       unsigned int entity_updates_skipped;
 
        EntityState player_update_state;
        std::uint16_t player_update_pack;
-       IntervalTimer player_update_timer;
+       CoarseTimer player_update_timer;
        std::uint8_t old_actions;
 
        ChunkTransmitter transmitter;
        std::deque<glm::ivec3> chunk_queue;
        glm::ivec3 old_base;
+       unsigned int chunk_blocks_skipped;
 
 };