Skip to content

Commit a7231d5

Browse files
committed
separation of concerns for meta/blockid block packet
1 parent 83d2509 commit a7231d5

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

src/main/java/com/falsepattern/chunk/internal/vanilla/BlockIDManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -148,15 +148,11 @@ public void readBlockFromPacket(Chunk chunk, int x, int y, int z, S23PacketBlock
148148

149149
@Override
150150
public void writeBlockPacketToBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
151-
buffer.writeShort((short)((Block.getIdFromBlock(packet.field_148883_d) & 0xFFF) << 4 | packet.field_148884_e & 0xF));
151+
buffer.writeShort(Block.getIdFromBlock(packet.field_148883_d) & 0xFFF);
152152
}
153153

154154
@Override
155155
public void readBlockPacketFromBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
156-
int packed = buffer.readUnsignedShort();
157-
int id = (packed >> 4) & 0xFFF;
158-
int meta = packed & 0xF;
159-
packet.field_148883_d = Block.getBlockById(id);
160-
packet.field_148884_e = meta;
156+
packet.field_148883_d = Block.getBlockById(buffer.readUnsignedShort() & 0xFFF);
161157
}
162158
}

src/main/java/com/falsepattern/chunk/internal/vanilla/MetadataManager.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,17 @@
3030
import com.falsepattern.chunk.api.DataManager;
3131

3232
import net.minecraft.nbt.NBTTagCompound;
33+
import net.minecraft.network.PacketBuffer;
34+
import net.minecraft.network.play.server.S23PacketBlockChange;
3335
import net.minecraft.world.chunk.Chunk;
3436
import net.minecraft.world.chunk.NibbleArray;
3537
import net.minecraft.world.chunk.storage.ExtendedBlockStorage;
3638

37-
public class MetadataManager extends NibbleManager implements DataManager.SubChunkDataManager {
39+
import java.io.IOException;
40+
41+
public class MetadataManager extends NibbleManager implements
42+
DataManager.BlockPacketDataManager,
43+
DataManager.SubChunkDataManager {
3844
@Override
3945
protected NibbleArray getNibbleArray(ExtendedBlockStorage subChunk) {
4046
return subChunk.getMetadataArray();
@@ -64,4 +70,22 @@ public void readSubChunkFromNBT(Chunk chunk, ExtendedBlockStorage subChunk, NBTT
6470
public void cloneSubChunk(Chunk fromChunk, ExtendedBlockStorage from, ExtendedBlockStorage to) {
6571
to.setBlockMetadataArray(ArrayUtil.copyArray(from.getMetadataArray(), to.getMetadataArray()));
6672
}
73+
74+
@Override
75+
public void writeBlockToPacket(Chunk chunk, int x, int y, int z, S23PacketBlockChange packet) {
76+
}
77+
78+
@Override
79+
public void readBlockFromPacket(Chunk chunk, int x, int y, int z, S23PacketBlockChange packet) {
80+
}
81+
82+
@Override
83+
public void writeBlockPacketToBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
84+
buffer.writeByte(packet.field_148884_e & 0xF);
85+
}
86+
87+
@Override
88+
public void readBlockPacketFromBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
89+
packet.field_148884_e = buffer.readUnsignedByte() & 0xF;
90+
}
6791
}

0 commit comments

Comments
 (0)