minecraft-src/net/minecraft/network/protocol/game/ClientboundInitializeBorderPacket.java
2025-07-04 03:15:13 +03:00

95 lines
2.8 KiB
Java

package net.minecraft.network.protocol.game;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.PacketType;
import net.minecraft.world.level.border.WorldBorder;
public class ClientboundInitializeBorderPacket implements Packet<ClientGamePacketListener> {
public static final StreamCodec<FriendlyByteBuf, ClientboundInitializeBorderPacket> STREAM_CODEC = Packet.codec(
ClientboundInitializeBorderPacket::write, ClientboundInitializeBorderPacket::new
);
private final double newCenterX;
private final double newCenterZ;
private final double oldSize;
private final double newSize;
private final long lerpTime;
private final int newAbsoluteMaxSize;
private final int warningBlocks;
private final int warningTime;
private ClientboundInitializeBorderPacket(FriendlyByteBuf buffer) {
this.newCenterX = buffer.readDouble();
this.newCenterZ = buffer.readDouble();
this.oldSize = buffer.readDouble();
this.newSize = buffer.readDouble();
this.lerpTime = buffer.readVarLong();
this.newAbsoluteMaxSize = buffer.readVarInt();
this.warningBlocks = buffer.readVarInt();
this.warningTime = buffer.readVarInt();
}
public ClientboundInitializeBorderPacket(WorldBorder worldBorder) {
this.newCenterX = worldBorder.getCenterX();
this.newCenterZ = worldBorder.getCenterZ();
this.oldSize = worldBorder.getSize();
this.newSize = worldBorder.getLerpTarget();
this.lerpTime = worldBorder.getLerpRemainingTime();
this.newAbsoluteMaxSize = worldBorder.getAbsoluteMaxSize();
this.warningBlocks = worldBorder.getWarningBlocks();
this.warningTime = worldBorder.getWarningTime();
}
private void write(FriendlyByteBuf buffer) {
buffer.writeDouble(this.newCenterX);
buffer.writeDouble(this.newCenterZ);
buffer.writeDouble(this.oldSize);
buffer.writeDouble(this.newSize);
buffer.writeVarLong(this.lerpTime);
buffer.writeVarInt(this.newAbsoluteMaxSize);
buffer.writeVarInt(this.warningBlocks);
buffer.writeVarInt(this.warningTime);
}
@Override
public PacketType<ClientboundInitializeBorderPacket> type() {
return GamePacketTypes.CLIENTBOUND_INITIALIZE_BORDER;
}
public void handle(ClientGamePacketListener clientGamePacketListener) {
clientGamePacketListener.handleInitializeBorder(this);
}
public double getNewCenterX() {
return this.newCenterX;
}
public double getNewCenterZ() {
return this.newCenterZ;
}
public double getNewSize() {
return this.newSize;
}
public double getOldSize() {
return this.oldSize;
}
public long getLerpTime() {
return this.lerpTime;
}
public int getNewAbsoluteMaxSize() {
return this.newAbsoluteMaxSize;
}
public int getWarningTime() {
return this.warningTime;
}
public int getWarningBlocks() {
return this.warningBlocks;
}
}