本文整理汇总了Java中cn.nukkit.utils.BinaryStream.put方法的典型用法代码示例。如果您正苦于以下问题:Java BinaryStream.put方法的具体用法?Java BinaryStream.put怎么用?Java BinaryStream.put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cn.nukkit.utils.BinaryStream
的用法示例。
在下文中一共展示了BinaryStream.put方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: toFastBinary
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
@Override
public byte[] toFastBinary() {
BinaryStream stream = new BinaryStream(new byte[65536]);
stream.put(Binary.writeInt(this.x));
stream.put(Binary.writeInt(this.z));
stream.put(this.getBlockIdArray());
stream.put(this.getBlockDataArray());
stream.put(this.getBlockSkyLightArray());
stream.put(this.getBlockLightArray());
for (int height : this.getHeightMapArray()) {
stream.putByte((byte) height);
}
for (int color : this.getBiomeColorArray()) {
stream.put(Binary.writeInt(color));
}
stream.putByte((byte) ((this.isLightPopulated() ? 1 << 2 : 0) + (this.isPopulated() ? 1 << 2 : 0) + (this.isGenerated() ? 1 : 0)));
return stream.getBuffer();
}
示例2: toFastBinary
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
@Override
public byte[] toFastBinary() {
BinaryStream stream = new BinaryStream(new byte[65536]);
stream.put(Binary.writeInt(this.x));
stream.put(Binary.writeInt(this.z));
stream.put(this.getBlockIdArray());
stream.put(this.getBlockDataArray());
stream.put(this.getBlockSkyLightArray());
stream.put(this.getBlockLightArray());
for (int height : this.getHeightMapArray()) {
stream.putByte((byte) (height & 0xff));
}
for (int color : this.getBiomeColorArray()) {
stream.put(Binary.writeInt(color));
}
stream.putByte((byte) ((this.isLightPopulated() ? 1 << 2 : 0) + (this.isPopulated() ? 1 << 2 : 0) + (this.isGenerated() ? 1 : 0)));
return stream.getBuffer();
}
示例3: getEmptyChunkPayload
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
public static byte[] getEmptyChunkPayload() {
BaseFullChunk chunk = new Chunk(McRegion.class);
byte[] tiles = new byte[0];
BinaryStream extraData = new BinaryStream();
BinaryStream stream = new BinaryStream();
stream.put(chunk.getBlockIdArray());
stream.put(chunk.getBlockDataArray());
stream.put(chunk.getBlockSkyLightArray());
stream.put(chunk.getBlockLightArray());
for (int height : chunk.getHeightMapArray()) {
stream.putByte((byte) (height & 0xff));
}
for (int color : chunk.getBiomeColorArray()) {
stream.put(Binary.writeInt(color));
}
stream.put(extraData.getBuffer());
stream.put(tiles);
return stream.getBuffer();
}
示例4: handleSplit
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
private void handleSplit(EncapsulatedPacket packet) throws Exception {
if (packet.splitCount >= MAX_SPLIT_SIZE || packet.splitIndex >= MAX_SPLIT_SIZE || packet.splitIndex < 0) {
return;
}
if (!this.splitPackets.containsKey(packet.splitID)) {
if (this.splitPackets.size() >= MAX_SPLIT_COUNT) {
return;
}
this.splitPackets.put(packet.splitID, new HashMap<Integer, EncapsulatedPacket>() {{
put(packet.splitIndex, packet);
}});
} else {
this.splitPackets.get(packet.splitID).put(packet.splitIndex, packet);
}
if (this.splitPackets.get(packet.splitID).size() == packet.splitCount) {
EncapsulatedPacket pk = new EncapsulatedPacket();
BinaryStream stream = new BinaryStream();
for (int i = 0; i < packet.splitCount; i++) {
stream.put(this.splitPackets.get(packet.splitID).get(i).buffer);
}
pk.buffer = stream.getBuffer();
pk.length = pk.buffer.length;
this.splitPackets.remove(packet.splitID);
this.handleEncapsulatedPacketRoute(pk);
}
}
示例5: requestChunkTask
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
@Override
public AsyncTask requestChunkTask(int x, int z) throws ChunkException {
BaseFullChunk chunk = this.getChunk(x, z, false);
if (chunk == null) {
throw new ChunkException("Invalid Chunk Sent");
}
byte[] tiles = new byte[0];
if (!chunk.getBlockEntities().isEmpty()) {
List<CompoundTag> tagList = new ArrayList<>();
for (BlockEntity blockEntity : chunk.getBlockEntities().values()) {
if (blockEntity instanceof BlockEntitySpawnable) {
tagList.add(((BlockEntitySpawnable) blockEntity).getSpawnCompound());
}
}
try {
tiles = NBTIO.write(tagList, ByteOrder.LITTLE_ENDIAN);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
BinaryStream extraData = new BinaryStream();
extraData.putLInt(chunk.getBlockExtraDataArray().size());
for (Integer key : chunk.getBlockExtraDataArray().keySet()) {
extraData.putLInt(key);
extraData.putLShort(chunk.getBlockExtraDataArray().get(key));
}
BinaryStream stream = new BinaryStream();
stream.put(chunk.getBlockIdArray());
stream.put(chunk.getBlockDataArray());
stream.put(chunk.getBlockSkyLightArray());
stream.put(chunk.getBlockLightArray());
for (int height : chunk.getHeightMapArray()) {
stream.putByte((byte) (height & 0xff));
}
for (int color : chunk.getBiomeColorArray()) {
stream.put(Binary.writeInt(color));
}
stream.put(extraData.getBuffer());
stream.put(tiles);
this.getLevel().chunkRequestCallback(x, z, stream.getBuffer());
return null;
}
示例6: requestChunkTask
import cn.nukkit.utils.BinaryStream; //导入方法依赖的package包/类
@Override
public AsyncTask requestChunkTask(int x, int z) throws ChunkException {
FullChunk chunk = this.getChunk(x, z, false);
if (chunk == null) {
throw new ChunkException("Invalid Chunk Set");
}
byte[] blockEntities = new byte[0];
if (!chunk.getBlockEntities().isEmpty()) {
List<CompoundTag> tagList = new ArrayList<>();
for (BlockEntity blockEntity : chunk.getBlockEntities().values()) {
if (blockEntity instanceof BlockEntitySpawnable) {
tagList.add(((BlockEntitySpawnable) blockEntity).getSpawnCompound());
}
}
try {
blockEntities = NBTIO.write(tagList, ByteOrder.LITTLE_ENDIAN);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
BinaryStream extraData = new BinaryStream();
extraData.putLInt(chunk.getBlockExtraDataArray().size());
for (Integer key : chunk.getBlockExtraDataArray().values()) {
extraData.putLInt(key);
extraData.putLShort(chunk.getBlockExtraDataArray().get(key));
}
BinaryStream stream = new BinaryStream();
stream.put(chunk.getBlockIdArray());
stream.put(chunk.getBlockDataArray());
stream.put(chunk.getBlockSkyLightArray());
stream.put(chunk.getBlockLightArray());
for (int height : chunk.getHeightMapArray()) {
stream.putByte((byte) (height & 0xff));
}
for (int color : chunk.getBiomeColorArray()) {
stream.put(Binary.writeInt(color));
}
stream.put(extraData.getBuffer());
stream.put(blockEntities);
this.getLevel().chunkRequestCallback(x, z, stream.getBuffer(), FullChunkDataPacket.ORDER_LAYERED);
return null;
}