tcr/java/src/game/packet/SPacketBlockChange.java

63 lines
1.5 KiB
Java
Executable file

package game.packet;
import java.io.IOException;
import game.init.BlockRegistry;
import game.network.ClientPlayer;
import game.network.Packet;
import game.network.PacketBuffer;
import game.world.BlockPos;
import game.world.State;
import game.world.World;
public class SPacketBlockChange implements Packet<ClientPlayer>
{
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.
*/
public void processPacket(ClientPlayer handler)
{
handler.handleBlockChange(this);
}
public State getBlockState()
{
return this.blockState;
}
public BlockPos getBlockPosition()
{
return this.blockPosition;
}
}