package net.scapeemulator.game.update;
import net.scapeemulator.game.model.Position;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.msg.impl.PlayerUpdateMessage;
import net.scapeemulator.game.net.game.GameFrameBuilder;
public final class TeleportPlayerDescriptor extends PlayerDescriptor {
public TeleportPlayerDescriptor(Player player, int[] tickets) {
super(player, tickets);
}
@Override
public void encodeDescriptor(PlayerUpdateMessage message, GameFrameBuilder builder, GameFrameBuilder blockBuilder) {
Position lastKnownRegion = message.getLastKnownRegion();
Position position = message.getPosition();
int x = position.getLocalX(lastKnownRegion.getRegionX());
int y = position.getLocalY(lastKnownRegion.getRegionY());
int height = position.getHeight() % 4;
builder.putBits(1, 1);
builder.putBits(2, 3);
builder.putBits(7, y);
builder.putBits(1, 1);
builder.putBits(2, height);
builder.putBits(1, isBlockUpdatedRequired() ? 1 : 0);
builder.putBits(7, x);
}
}