VoidWorld, VoidChunk
This commit is contained in:
@@ -28,13 +28,17 @@ import mc.protocol.packets.ServerSidePacket;
|
|||||||
@Data
|
@Data
|
||||||
public class ChunkDataPacket implements ServerSidePacket {
|
public class ChunkDataPacket implements ServerSidePacket {
|
||||||
|
|
||||||
|
private static NetByteBuf voidData;
|
||||||
|
|
||||||
private int x;
|
private int x;
|
||||||
private int z;
|
private int z;
|
||||||
|
|
||||||
|
@SuppressWarnings("java:S125")
|
||||||
@Override
|
@Override
|
||||||
public void writeSelf(NetByteBuf netByteBuf) {
|
public void writeSelf(NetByteBuf netByteBuf) {
|
||||||
netByteBuf.writeInt(x);
|
netByteBuf.writeInt(x);
|
||||||
netByteBuf.writeInt(z);
|
netByteBuf.writeInt(z);
|
||||||
|
/* Временное отключение кода
|
||||||
netByteBuf.writeBoolean(true); // Is Full chunk
|
netByteBuf.writeBoolean(true); // Is Full chunk
|
||||||
netByteBuf.writeVarInt(0b11111111); // Available Sections
|
netByteBuf.writeVarInt(0b11111111); // Available Sections
|
||||||
|
|
||||||
@@ -64,6 +68,41 @@ public class ChunkDataPacket implements ServerSidePacket {
|
|||||||
netByteBuf.writeVarInt(data.readableBytes()); // Size of Data
|
netByteBuf.writeVarInt(data.readableBytes()); // Size of Data
|
||||||
netByteBuf.writeBytes(data); // Data
|
netByteBuf.writeBytes(data); // Data
|
||||||
netByteBuf.writeVarInt(0); // Number of block entities
|
netByteBuf.writeVarInt(0); // Number of block entities
|
||||||
/* write NBT's */
|
// write NBT's
|
||||||
|
*/
|
||||||
|
|
||||||
|
netByteBuf.writeBytes(voidData);
|
||||||
|
|
||||||
|
voidData.resetReaderIndex();
|
||||||
|
voidData.resetWriterIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
voidData = new NetByteBuf(Unpooled.buffer());
|
||||||
|
voidData.writeBoolean(true); // Is Full chunk
|
||||||
|
voidData.writeVarInt(0b11111111); // Available Sections
|
||||||
|
|
||||||
|
NetByteBuf data = new NetByteBuf(Unpooled.buffer());
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
NetByteBuf dataBuff = new NetByteBuf(Unpooled.wrappedBuffer(new byte[4096]));
|
||||||
|
NetByteBuf blockLight = new NetByteBuf(Unpooled.wrappedBuffer(new byte[2048]));
|
||||||
|
NetByteBuf skyLight = new NetByteBuf(Unpooled.wrappedBuffer(new byte[2048]));
|
||||||
|
NetByteBuf biomes = new NetByteBuf(Unpooled.wrappedBuffer(new byte[256]));
|
||||||
|
|
||||||
|
data.writeUnsignedByte(13);
|
||||||
|
data.writeUnsignedByte(0);
|
||||||
|
data.writeVarInt(dataBuff.readableBytes());
|
||||||
|
data.writeBytes(dataBuff);
|
||||||
|
data.writeBytes(blockLight);
|
||||||
|
data.writeBytes(skyLight);
|
||||||
|
data.writeBytes(biomes);
|
||||||
|
}
|
||||||
|
|
||||||
|
voidData.writeVarInt(data.readableBytes());
|
||||||
|
voidData.writeBytes(data);
|
||||||
|
voidData.writeVarInt(0);
|
||||||
|
|
||||||
|
voidData.markReaderIndex();
|
||||||
|
voidData.markWriterIndex();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
server/src/main/java/mc/server/world/VoidChunk.java
Normal file
13
server/src/main/java/mc/server/world/VoidChunk.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package mc.server.world;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import mc.protocol.world.Chunk;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Getter
|
||||||
|
public class VoidChunk implements Chunk {
|
||||||
|
|
||||||
|
private final int x;
|
||||||
|
private final int z;
|
||||||
|
}
|
||||||
26
server/src/main/java/mc/server/world/VoidWorld.java
Normal file
26
server/src/main/java/mc/server/world/VoidWorld.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package mc.server.world;
|
||||||
|
|
||||||
|
import mc.protocol.model.Location;
|
||||||
|
import mc.protocol.utils.LevelType;
|
||||||
|
import mc.protocol.world.Chunk;
|
||||||
|
import mc.protocol.world.World;
|
||||||
|
|
||||||
|
public class VoidWorld implements World {
|
||||||
|
|
||||||
|
private static final Location spawn = new Location(7d, 130d, 7d);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LevelType getLevelType() {
|
||||||
|
return LevelType.FLAT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getSpawn() {
|
||||||
|
return VoidWorld.spawn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Chunk getChunk(int x, int z) {
|
||||||
|
return new VoidChunk(x, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user