separation of concerns for meta/blockid block packet

This commit is contained in:
FalsePattern committed 2024-12-09 18:09:33 +01:00
1 parent 83d2509ccc
commit a7231d5a31
2 files changed
+27 -7

No files matched your search

@@ -148,15 +148,11 @@ public class BlockIDManager extends VanillaManager
@Override
public void writeBlockPacketToBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
buffer.writeShort((short)((Block.getIdFromBlock(packet.field_148883_d) & 0xFFF) << 4 | packet.field_148884_e & 0xF));
buffer.writeShort(Block.getIdFromBlock(packet.field_148883_d) & 0xFFF);
}
@Override
public void readBlockPacketFromBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
int packed = buffer.readUnsignedShort();
int id = (packed >> 4) & 0xFFF;
int meta = packed & 0xF;
packet.field_148883_d = Block.getBlockById(id);
packet.field_148884_e = meta;
packet.field_148883_d = Block.getBlockById(buffer.readUnsignedShort() & 0xFFF);
}
}
@@ -30,11 +30,17 @@ import com.falsepattern.chunk.api.ArrayUtil;
import com.falsepattern.chunk.api.DataManager;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.server.S23PacketBlockChange;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.NibbleArray;
import net.minecraft.world.chunk.storage.ExtendedBlockStorage;
public class MetadataManager extends NibbleManager implements DataManager.SubChunkDataManager {
import java.io.IOException;
public class MetadataManager extends NibbleManager implements
DataManager.BlockPacketDataManager,
DataManager.SubChunkDataManager {
@Override
protected NibbleArray getNibbleArray(ExtendedBlockStorage subChunk) {
return subChunk.getMetadataArray();
@@ -64,4 +70,22 @@ public class MetadataManager extends NibbleManager implements DataManager.SubChu
public void cloneSubChunk(Chunk fromChunk, ExtendedBlockStorage from, ExtendedBlockStorage to) {
to.setBlockMetadataArray(ArrayUtil.copyArray(from.getMetadataArray(), to.getMetadataArray()));
}
@Override
public void writeBlockToPacket(Chunk chunk, int x, int y, int z, S23PacketBlockChange packet) {
}
@Override
public void readBlockFromPacket(Chunk chunk, int x, int y, int z, S23PacketBlockChange packet) {
}
@Override
public void writeBlockPacketToBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
buffer.writeByte(packet.field_148884_e & 0xF);
}
@Override
public void readBlockPacketFromBuffer(S23PacketBlockChange packet, PacketBuffer buffer) throws IOException {
packet.field_148884_e = buffer.readUnsignedByte() & 0xF;
}
}