2025-03-11 00:23:54 +01:00
|
|
|
package game.packet;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import game.init.BlockRegistry;
|
2025-03-26 12:22:32 +01:00
|
|
|
import game.network.ClientPlayer;
|
2025-03-11 00:23:54 +01:00
|
|
|
import game.network.Packet;
|
|
|
|
import game.network.PacketBuffer;
|
|
|
|
import game.world.BlockPos;
|
|
|
|
import game.world.State;
|
|
|
|
import game.world.World;
|
|
|
|
|
2025-03-26 12:22:32 +01:00
|
|
|
public class SPacketBlockChange implements Packet<ClientPlayer>
|
2025-03-11 00:23:54 +01:00
|
|
|
{
|
|
|
|
private BlockPos blockPosition;
|
|
|
|
private State blockState;
|
|
|
|
|
|
|
|
public SPacketBlockChange()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
public SPacketBlockChange(World worldIn, BlockPos blockPositionIn)
|
|
|
|
{
|
|
|
|
this.blockPosition = blockPositionIn;
|
|
|
|
this.blockState = worldIn.getState(blockPositionIn);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reads the raw packet data from the data stream.
|
|
|
|
*/
|
|
|
|
public void readPacketData(PacketBuffer buf) throws IOException
|
|
|
|
{
|
|
|
|
this.blockPosition = buf.readBlockPos();
|
|
|
|
this.blockState = (State)BlockRegistry.STATEMAP.getByValue(buf.readVarIntFromBuffer());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Writes the raw packet data to the data stream.
|
|
|
|
*/
|
|
|
|
public void writePacketData(PacketBuffer buf) throws IOException
|
|
|
|
{
|
|
|
|
buf.writeBlockPos(this.blockPosition);
|
|
|
|
buf.writeVarIntToBuffer(BlockRegistry.STATEMAP.get(this.blockState));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Passes this Packet on to the NetHandler for processing.
|
|
|
|
*/
|
2025-03-26 12:22:32 +01:00
|
|
|
public void processPacket(ClientPlayer handler)
|
2025-03-11 00:23:54 +01:00
|
|
|
{
|
|
|
|
handler.handleBlockChange(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
public State getBlockState()
|
|
|
|
{
|
|
|
|
return this.blockState;
|
|
|
|
}
|
|
|
|
|
|
|
|
public BlockPos getBlockPosition()
|
|
|
|
{
|
|
|
|
return this.blockPosition;
|
|
|
|
}
|
|
|
|
}
|