aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/ClientConnection.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/ClientConnection.h')
-rw-r--r--Minecraft.Client/ClientConnection.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/Minecraft.Client/ClientConnection.h b/Minecraft.Client/ClientConnection.h
index f13b93e7..3448496d 100644
--- a/Minecraft.Client/ClientConnection.h
+++ b/Minecraft.Client/ClientConnection.h
@@ -1,4 +1,5 @@
#pragma once
+#include <unordered_set>
#include "..\Minecraft.World\net.minecraft.network.h"
class Minecraft;
class MultiPlayerLevel;
@@ -44,6 +45,20 @@ public:
private:
DWORD m_userIndex; // 4J Added
bool isPrimaryConnection() const;
+
+ std::unordered_set<int> m_trackedEntityIds;
+ std::unordered_set<int64_t> m_visibleChunks;
+
+ static int64_t chunkKey(int x, int z) { return ((int64_t)x << 32) | ((int64_t)z & 0xFFFFFFFF); }
+
+ ClientConnection* findPrimaryConnection() const;
+ bool shouldProcessForEntity(int entityId) const;
+ bool shouldProcessForPosition(int blockX, int blockZ) const;
+ bool anyOtherConnectionHasChunk(int x, int z) const;
+
+public:
+ bool isTrackingEntity(int entityId) const { return m_trackedEntityIds.count(entityId) > 0; }
+
public:
SavedDataStorage *savedDataStorage;
ClientConnection(Minecraft *minecraft, const wstring& ip, int port);