EntityPlayerMP: Faster chunk sending (And this avoids thousands of useless chunk light updates on the client side)
This commit is contained in:
parent
10abac72b5
commit
bbfc5b9e94
1 changed files with 21 additions and 9 deletions
|
|
@ -151,16 +151,28 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
|||
}
|
||||
|
||||
if (var1 && !this.loadedChunks.isEmpty()) {
|
||||
ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0);
|
||||
// Patch start
|
||||
HashSet<ChunkCoordIntPair> queue = new HashSet<>();
|
||||
for (int count = 0; !this.loadedChunks.isEmpty() && count < 9; count++) {
|
||||
//ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0);
|
||||
ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.remove(0);
|
||||
if (var7 != null) {
|
||||
boolean var8 = false;
|
||||
if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) {
|
||||
var8 = true;
|
||||
//boolean var8 = false;
|
||||
//if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) {
|
||||
// var8 = true;
|
||||
//}
|
||||
|
||||
//if (var8) {
|
||||
// WorldServer var9 = this.mcServer.getWorldManager(this.dimension);
|
||||
// this.loadedChunks.remove(var7);
|
||||
queue.add(var7);
|
||||
}
|
||||
}
|
||||
|
||||
if (var8) {
|
||||
if (!queue.isEmpty()) {
|
||||
WorldServer var9 = this.mcServer.getWorldManager(this.dimension);
|
||||
this.loadedChunks.remove(var7);
|
||||
for (ChunkCoordIntPair var7 : queue) {
|
||||
// Patch end
|
||||
this.playerNetServerHandler.sendPacket(new Packet51MapChunk(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, 16, 128, 16, var9));
|
||||
List var5 = var9.getTileEntityList(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, var7.chunkXPos * 16 + 16, 128, var7.chunkZPos * 16 + 16);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue