# HG changeset patch # Parent 0cd26955ac4643d9c06df60fc2cd1f359c06e64c # User Socolin diff --git a/minecraft/net/minecraft/src/NetClientHandler.java b/minecraft/net/minecraft/src/NetClientHandler.java --- a/minecraft/net/minecraft/src/NetClientHandler.java +++ b/minecraft/net/minecraft/src/NetClientHandler.java @@ -1057,33 +1057,33 @@ public class NetClientHandler extends Ne public void handleBlockDestroy(Packet55BlockDestroy par1Packet55BlockDestroy) { this.mc.theWorld.destroyBlockInWorldPartially(par1Packet55BlockDestroy.getEntityId(), par1Packet55BlockDestroy.getPosX(), par1Packet55BlockDestroy.getPosY(), par1Packet55BlockDestroy.getPosZ(), par1Packet55BlockDestroy.getDestroyedStage()); } public void handleMapChunks(Packet56MapChunks par1Packet56MapChunks) { - for (int var2 = 0; var2 < par1Packet56MapChunks.func_73581_d(); ++var2) + for (int var2 = 0; var2 < par1Packet56MapChunks.getNumberOfChunkInPacket(); ++var2) { - int var3 = par1Packet56MapChunks.func_73582_a(var2); + int var3 = par1Packet56MapChunks.getChunkPosX(var2); int var4 = par1Packet56MapChunks.func_73580_b(var2); this.worldClient.doPreChunk(var3, var4, true); this.worldClient.invalidateBlockReceiveRegion(var3 << 4, 0, var4 << 4, (var3 << 4) + 15, 256, (var4 << 4) + 15); Chunk var5 = this.worldClient.getChunkFromChunkCoords(var3, var4); if (var5 == null) { this.worldClient.doPreChunk(var3, var4, true); var5 = this.worldClient.getChunkFromChunkCoords(var3, var4); } if (var5 != null) { - var5.fillChunk(par1Packet56MapChunks.func_73583_c(var2), par1Packet56MapChunks.field_73590_a[var2], par1Packet56MapChunks.field_73588_b[var2], true); + var5.fillChunk(par1Packet56MapChunks.getChunkCompressedData(var2), par1Packet56MapChunks.chunkExistFlag[var2], par1Packet56MapChunks.chunkAddSectionFlag[var2], true); this.worldClient.markBlockRangeForRenderUpdate(var3 << 4, 0, var4 << 4, (var3 << 4) + 15, 256, (var4 << 4) + 15); if (!(this.worldClient.provider instanceof WorldProviderSurface)) { var5.resetRelightChecks(); } } } diff --git a/minecraft/net/minecraft/src/Packet51MapChunk.java b/minecraft/net/minecraft/src/Packet51MapChunk.java --- a/minecraft/net/minecraft/src/Packet51MapChunk.java +++ b/minecraft/net/minecraft/src/Packet51MapChunk.java @@ -25,27 +25,27 @@ public class Packet51MapChunk extends Pa } public Packet51MapChunk(Chunk par1Chunk, boolean par2, int par3) { this.isChunkDataPacket = true; this.xCh = par1Chunk.xPosition; this.zCh = par1Chunk.zPosition; this.includeInitialize = par2; - Packet51MapChunkData var4 = getMapChunkData(par1Chunk, par2, par3); + Packet51MapChunkData chunkData = getMapChunkData(par1Chunk, par2, par3); Deflater var5 = new Deflater(-1); - this.yChMax = var4.field_74581_c; - this.yChMin = var4.field_74580_b; + this.yChMax = chunkData.chunkHasAddSectionFlag; + this.yChMin = chunkData.chunkExistFlag; try { - this.field_73596_g = var4.field_74582_a; - var5.setInput(var4.field_74582_a, 0, var4.field_74582_a.length); + this.field_73596_g = chunkData.compressedData; + var5.setInput(chunkData.compressedData, 0, chunkData.compressedData.length); var5.finish(); - this.chunkData = new byte[var4.field_74582_a.length]; + this.chunkData = new byte[chunkData.compressedData.length]; this.tempLength = var5.deflate(this.chunkData); } finally { var5.end(); } } @@ -137,21 +137,21 @@ public class Packet51MapChunk extends Pa } int var8; for (var8 = 0; var8 < var4.length; ++var8) { if (var4[var8] != null && (!par1 || !var4[var8].isEmpty()) && (par2 & 1 << var8) != 0) { - var6.field_74580_b |= 1 << var8; + var6.chunkExistFlag |= 1 << var8; if (var4[var8].getBlockMSBArray() != null) { - var6.field_74581_c |= 1 << var8; + var6.chunkHasAddSectionFlag |= 1 << var8; ++var5; } } } for (var8 = 0; var8 < var4.length; ++var8) { if (var4[var8] != null && (!par1 || !var4[var8].isEmpty()) && (par2 & 1 << var8) != 0) @@ -209,13 +209,13 @@ public class Packet51MapChunk extends Pa if (par1) { byte[] var11 = par0Chunk.getBiomeArray(); System.arraycopy(var11, 0, var7, var3, var11.length); var3 += var11.length; } - var6.field_74582_a = new byte[var3]; - System.arraycopy(var7, 0, var6.field_74582_a, 0, var3); + var6.compressedData = new byte[var3]; + System.arraycopy(var7, 0, var6.compressedData, 0, var3); return var6; } } diff --git a/minecraft/net/minecraft/src/Packet51MapChunkData.java b/minecraft/net/minecraft/src/Packet51MapChunkData.java --- a/minecraft/net/minecraft/src/Packet51MapChunkData.java +++ b/minecraft/net/minecraft/src/Packet51MapChunkData.java @@ -1,8 +1,8 @@ package net.minecraft.src; public class Packet51MapChunkData { - public byte[] field_74582_a; - public int field_74580_b; - public int field_74581_c; + public byte[] compressedData; + public int chunkExistFlag; + public int chunkHasAddSectionFlag; } diff --git a/minecraft/net/minecraft/src/Packet56MapChunks.java b/minecraft/net/minecraft/src/Packet56MapChunks.java --- a/minecraft/net/minecraft/src/Packet56MapChunks.java +++ b/minecraft/net/minecraft/src/Packet56MapChunks.java @@ -5,166 +5,166 @@ import java.io.DataOutputStream; import java.io.IOException; import java.util.List; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; public class Packet56MapChunks extends Packet { - private int[] field_73589_c; - private int[] field_73586_d; - public int[] field_73590_a; - public int[] field_73588_b; - private byte[] field_73587_e; - private byte[][] field_73584_f; - private int field_73585_g; - private static byte[] field_73591_h = new byte[0]; + private int[] chunkPostX; + private int[] chunkPosZ; + public int[] chunkExistFlag; + public int[] chunkAddSectionFlag; + private byte[] compressedData; + private byte[][] chunkCompressedData; + private int compressedDataSize; + private static byte[] chunkDataNotCompressed = new byte[0]; public Packet56MapChunks() {} public Packet56MapChunks(List par1List) { - int var2 = par1List.size(); - this.field_73589_c = new int[var2]; - this.field_73586_d = new int[var2]; - this.field_73590_a = new int[var2]; - this.field_73588_b = new int[var2]; - this.field_73584_f = new byte[var2][]; - int var3 = 0; + int numberOfChunkToSend = par1List.size(); + this.chunkPostX = new int[numberOfChunkToSend]; + this.chunkPosZ = new int[numberOfChunkToSend]; + this.chunkExistFlag = new int[numberOfChunkToSend]; + this.chunkAddSectionFlag = new int[numberOfChunkToSend]; + this.chunkCompressedData = new byte[numberOfChunkToSend][]; + int noCompressedDataSize = 0; - for (int var4 = 0; var4 < var2; ++var4) + for (int chunkId = 0; chunkId < numberOfChunkToSend; ++chunkId) { - Chunk var5 = (Chunk)par1List.get(var4); - Packet51MapChunkData var6 = Packet51MapChunk.getMapChunkData(var5, true, 65535); + Chunk currentChunk = (Chunk)par1List.get(chunkId); + Packet51MapChunkData chunkPacketData = Packet51MapChunk.getMapChunkData(currentChunk, true, 65535); - if (field_73591_h.length < var3 + var6.field_74582_a.length) + if (chunkDataNotCompressed.length < noCompressedDataSize + chunkPacketData.compressedData.length) { - byte[] var7 = new byte[var3 + var6.field_74582_a.length]; - System.arraycopy(field_73591_h, 0, var7, 0, field_73591_h.length); - field_73591_h = var7; + byte[] var7 = new byte[noCompressedDataSize + chunkPacketData.compressedData.length]; + System.arraycopy(chunkDataNotCompressed, 0, var7, 0, chunkDataNotCompressed.length); + chunkDataNotCompressed = var7; } - System.arraycopy(var6.field_74582_a, 0, field_73591_h, var3, var6.field_74582_a.length); - var3 += var6.field_74582_a.length; - this.field_73589_c[var4] = var5.xPosition; - this.field_73586_d[var4] = var5.zPosition; - this.field_73590_a[var4] = var6.field_74580_b; - this.field_73588_b[var4] = var6.field_74581_c; - this.field_73584_f[var4] = var6.field_74582_a; + System.arraycopy(chunkPacketData.compressedData, 0, chunkDataNotCompressed, noCompressedDataSize, chunkPacketData.compressedData.length); + noCompressedDataSize += chunkPacketData.compressedData.length; + this.chunkPostX[chunkId] = currentChunk.xPosition; + this.chunkPosZ[chunkId] = currentChunk.zPosition; + this.chunkExistFlag[chunkId] = chunkPacketData.chunkExistFlag; + this.chunkAddSectionFlag[chunkId] = chunkPacketData.chunkHasAddSectionFlag; + this.chunkCompressedData[chunkId] = chunkPacketData.compressedData; } - Deflater var11 = new Deflater(-1); + Deflater deflater = new Deflater(-1); try { - var11.setInput(field_73591_h, 0, var3); - var11.finish(); - this.field_73587_e = new byte[var3]; - this.field_73585_g = var11.deflate(this.field_73587_e); + deflater.setInput(chunkDataNotCompressed, 0, noCompressedDataSize); + deflater.finish(); + this.compressedData = new byte[noCompressedDataSize]; + this.compressedDataSize = deflater.deflate(this.compressedData); } finally { - var11.end(); + deflater.end(); } } public void readPacketData(DataInputStream par1DataInputStream) throws IOException { - short var2 = par1DataInputStream.readShort(); - this.field_73585_g = par1DataInputStream.readInt(); - this.field_73589_c = new int[var2]; - this.field_73586_d = new int[var2]; - this.field_73590_a = new int[var2]; - this.field_73588_b = new int[var2]; - this.field_73584_f = new byte[var2][]; + short countReceivedChunk = par1DataInputStream.readShort(); + this.compressedDataSize = par1DataInputStream.readInt(); + this.chunkPostX = new int[countReceivedChunk]; + this.chunkPosZ = new int[countReceivedChunk]; + this.chunkExistFlag = new int[countReceivedChunk]; + this.chunkAddSectionFlag = new int[countReceivedChunk]; + this.chunkCompressedData = new byte[countReceivedChunk][]; - if (field_73591_h.length < this.field_73585_g) + if (chunkDataNotCompressed.length < this.compressedDataSize) { - field_73591_h = new byte[this.field_73585_g]; + chunkDataNotCompressed = new byte[this.compressedDataSize]; } - par1DataInputStream.readFully(field_73591_h, 0, this.field_73585_g); - byte[] var3 = new byte[196864 * var2]; - Inflater var4 = new Inflater(); - var4.setInput(field_73591_h, 0, this.field_73585_g); + par1DataInputStream.readFully(chunkDataNotCompressed, 0, this.compressedDataSize); + byte[] decompressedData = new byte[196864 * countReceivedChunk]; + Inflater inflater = new Inflater(); + inflater.setInput(chunkDataNotCompressed, 0, this.compressedDataSize); try { - var4.inflate(var3); + inflater.inflate(decompressedData); } catch (DataFormatException var11) { throw new IOException("Bad compressed data format"); } finally { - var4.end(); + inflater.end(); } - int var5 = 0; + int offsetInDecompressedBuffer = 0; - for (int var6 = 0; var6 < var2; ++var6) + for (int chunkId = 0; chunkId < countReceivedChunk; ++chunkId) { - this.field_73589_c[var6] = par1DataInputStream.readInt(); - this.field_73586_d[var6] = par1DataInputStream.readInt(); - this.field_73590_a[var6] = par1DataInputStream.readShort(); - this.field_73588_b[var6] = par1DataInputStream.readShort(); - int var7 = 0; - int var8; + this.chunkPostX[chunkId] = par1DataInputStream.readInt(); + this.chunkPosZ[chunkId] = par1DataInputStream.readInt(); + this.chunkExistFlag[chunkId] = par1DataInputStream.readShort(); + this.chunkAddSectionFlag[chunkId] = par1DataInputStream.readShort(); + int chunkDataBlockCount = 0; + int chunkBitId; - for (var8 = 0; var8 < 16; ++var8) + for (chunkBitId = 0; chunkBitId < 16; ++chunkBitId) { - var7 += this.field_73590_a[var6] >> var8 & 1; + chunkDataBlockCount += this.chunkExistFlag[chunkId] >> chunkBitId & 1; } - var8 = 2048 * 5 * var7 + 256; - this.field_73584_f[var6] = new byte[var8]; - System.arraycopy(var3, var5, this.field_73584_f[var6], 0, var8); - var5 += var8; + int chunkDataSize = 2048 * 5 * chunkDataBlockCount + 256; + this.chunkCompressedData[chunkId] = new byte[chunkDataSize]; + System.arraycopy(decompressedData, offsetInDecompressedBuffer, this.chunkCompressedData[chunkId], 0, chunkDataSize); + offsetInDecompressedBuffer += chunkDataSize; } } public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException { - par1DataOutputStream.writeShort(this.field_73589_c.length); - par1DataOutputStream.writeInt(this.field_73585_g); - par1DataOutputStream.write(this.field_73587_e, 0, this.field_73585_g); + par1DataOutputStream.writeShort(this.chunkPostX.length); + par1DataOutputStream.writeInt(this.compressedDataSize); + par1DataOutputStream.write(this.compressedData, 0, this.compressedDataSize); - for (int var2 = 0; var2 < this.field_73589_c.length; ++var2) + for (int var2 = 0; var2 < this.chunkPostX.length; ++var2) { - par1DataOutputStream.writeInt(this.field_73589_c[var2]); - par1DataOutputStream.writeInt(this.field_73586_d[var2]); - par1DataOutputStream.writeShort((short)(this.field_73590_a[var2] & 65535)); - par1DataOutputStream.writeShort((short)(this.field_73588_b[var2] & 65535)); + par1DataOutputStream.writeInt(this.chunkPostX[var2]); + par1DataOutputStream.writeInt(this.chunkPosZ[var2]); + par1DataOutputStream.writeShort((short)(this.chunkExistFlag[var2] & 65535)); + par1DataOutputStream.writeShort((short)(this.chunkAddSectionFlag[var2] & 65535)); } } public void processPacket(NetHandler par1NetHandler) { par1NetHandler.handleMapChunks(this); } public int getPacketSize() { - return 6 + this.field_73585_g + 12 * this.func_73581_d(); + return 6 + this.compressedDataSize + 12 * this.getNumberOfChunkInPacket(); } - public int func_73582_a(int par1) + public int getChunkPosX(int chunkIndexInPacket) { - return this.field_73589_c[par1]; + return this.chunkPostX[chunkIndexInPacket]; } - public int func_73580_b(int par1) + public int getChunkPosZ(int chunkIndexInPacket) { - return this.field_73586_d[par1]; + return this.chunkPosZ[chunkIndexInPacket]; } - public int func_73581_d() + public int getNumberOfChunkInPacket() { - return this.field_73589_c.length; + return this.chunkPostX.length; } - public byte[] func_73583_c(int par1) + public byte[] getChunkCompressedData(int chunkIndexInPacket) { - return this.field_73584_f[par1]; + return this.chunkCompressedData[chunkIndexInPacket]; } }