mirror of
https://github.com/LegacyModdingMC/ChunkAPI.git
synced 2026-11-12 00:17:49 +00:00
separation of concerns for meta/blockid block packet
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user