Fix blockRefCnt

test
mckuhei 2 years ago
parent eeb5c8dc71
commit 41e55c7e03

@ -130,7 +130,7 @@ public class Chunk
{
int var10 = var8 >> 4;
getBlockStorage(var10).setExtBlockID(var6, var8 & 15, var7, var9);
getBlockStorage(var10).setExtBlockID(var6, var8 & 15, var7, var9);
}
}
}

@ -472,7 +472,7 @@ public class ChunkProviderGenerate implements IChunkProvider
int var7 = var4 + 1;
byte var8 = 3;
int var9 = var4 + 1;
byte[] par3ArrayOfByte = storage.getBlockLSBArray();
byte[] par3ArrayOfByte = new byte[1 << 12];
this.biomesForGeneration = this.worldObj.getWorldChunkManager().getBiomesForGeneration(this.biomesForGeneration, x.multiply(BigInteger.valueOf(4)).subtract(BigInteger.valueOf(2)), z.multiply(BigInteger.valueOf(4)).subtract(BigInteger.valueOf(2)), var7 + 5, var9 + 5);
double[] noiseArray = initializeNoiseField(null, x.multiply(BigInteger.valueOf(var4)), y * var4, z.multiply(BigInteger.valueOf(var4)), var7, var8, var9);
for (int var10 = 0; var10 < var4; ++var10)
@ -540,6 +540,10 @@ public class ChunkProviderGenerate implements IChunkProvider
}
}
}
for(int i = 0; i < 16; i++) for(int j = 0; j < 16; j++) for(int k = 0; k < 16; k++) {
int blockId = par3ArrayOfByte[i << 8 | k << 4 | j] & 0xFF;
if(blockId != 0) storage.setExtBlockID(i, j, k, blockId);
}
}
/**

@ -317,4 +317,12 @@ public class ExtendedBlockStorage
this.blockMSBArray = new NibbleArray(this.blockLSBArray.length, 4);
return this.blockMSBArray;
}
public int getBlockRefCnt() {
return this.blockRefCount;
}
public void setBlockRefCnt(int blockRefCnt) {
this.blockRefCount = blockRefCnt;
}
}

@ -583,12 +583,15 @@ public class NetClientHandler extends NetHandler
}
public void handleAddExtraChunk(Packet57ExtraChunk packet) {
ExtendedBlockStorage storage = this.worldClient.getChunkFromChunkCoords(packet.getX(), packet.getZ()).getBlockStorage(packet.getY());
Chunk chunk = this.worldClient.getChunkFromChunkCoords(packet.getX(), packet.getZ());
if(chunk instanceof EmptyChunk) throw new RuntimeException("Attempt send extra chunk data on empty chunk!");
ExtendedBlockStorage storage = chunk.getBlockStorage(packet.getY());
System.arraycopy(packet.getBlockLSB() , 0, storage.getBlockLSBArray() , 0, storage.getBlockLSBArray() .length);
System.arraycopy(packet.getBlockMSB() , 0, storage.getBlockMSBArray() .data, 0, storage.getBlockMSBArray() .data.length);
System.arraycopy(packet.getMetadata() , 0, storage.getMetadataArray() .data, 0, storage.getMetadataArray() .data.length);
System.arraycopy(packet.getSkyLight() , 0, storage.getSkylightArray() .data, 0, storage.getSkylightArray() .data.length);
System.arraycopy(packet.getBlockLight(), 0, storage.getBlocklightArray().data, 0, storage.getBlocklightArray().data.length);
storage.setBlockRefCnt(packet.getBlockRefCnt());
this.worldClient.markBlocksDirty(packet.getX().shiftLeft(4), packet.getY() << 4, packet.getZ().shiftLeft(4), (packet.getX().shiftLeft(4)).add(BigInteger.valueOf(15)), packet.getY() + 16, (packet.getZ().shiftLeft(4)).add(BigInteger.valueOf(15)));
}

@ -10,7 +10,7 @@ public class Packet57ExtraChunk extends Packet {
private byte[] blockLSB, blockMSB, metadata, skyLight, blockLight;
private BigInteger x, z;
private int y;
private int y, blockRefCnt;
public Packet57ExtraChunk() {}
@ -18,11 +18,12 @@ public class Packet57ExtraChunk extends Packet {
this.x = x;
this.y = y;
this.z = z;
this.blockLSB = storage.getBlockLSBArray();
this.blockMSB = storage.getBlockMSBArray().data;
this.metadata = storage.getMetadataArray().data;
this.skyLight = storage.getSkylightArray().data;
this.blockLight = storage.getBlocklightArray().data;
this.blockLSB = storage.getBlockLSBArray();
this.blockMSB = storage.getBlockMSBArray().data;
this.metadata = storage.getMetadataArray().data;
this.skyLight = storage.getSkylightArray().data;
this.blockLight = storage.getBlocklightArray().data;
this.blockRefCnt = storage.getBlockRefCnt();
}
@Override
@ -30,11 +31,12 @@ public class Packet57ExtraChunk extends Packet {
this.x = readBigInteger(var1);
this.y = var1.readInt();
this.z = readBigInteger(var1);
this.blockLSB = readBytesFromStream(var1);
this.blockMSB = readBytesFromStream(var1);
this.metadata = readBytesFromStream(var1);
this.skyLight = readBytesFromStream(var1);
this.blockLight = readBytesFromStream(var1);
this.blockLSB = readBytesFromStream(var1);
this.blockMSB = readBytesFromStream(var1);
this.metadata = readBytesFromStream(var1);
this.skyLight = readBytesFromStream(var1);
this.blockLight = readBytesFromStream(var1);
this.blockRefCnt = var1.readInt();
}
@Override
@ -42,11 +44,12 @@ public class Packet57ExtraChunk extends Packet {
writeBigInteger(var1, this.x);
var1.writeInt(this.y);
writeBigInteger(var1, this.z);
writeByteArray(var1, blockLSB);
writeByteArray(var1, blockMSB);
writeByteArray(var1, metadata);
writeByteArray(var1, skyLight);
writeByteArray(var1, blockLight);
writeByteArray(var1, this.blockLSB);
writeByteArray(var1, this.blockMSB);
writeByteArray(var1, this.metadata);
writeByteArray(var1, this.skyLight);
writeByteArray(var1, this.blockLight);
var1.writeInt(blockRefCnt);
}
@Override
@ -91,4 +94,8 @@ public class Packet57ExtraChunk extends Packet {
return y;
}
public int getBlockRefCnt() {
return blockRefCnt;
}
}

Loading…
Cancel
Save