package net.scapeemulator.game.update;
import net.scapeemulator.game.model.mob.Direction;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.msg.impl.PlayerUpdateMessage;
import net.scapeemulator.game.net.game.GameFrameBuilder;
public final class RunPlayerDescriptor extends PlayerDescriptor {
private final Direction firstDirection, secondDirection;
public RunPlayerDescriptor(Player player, int[] tickets) {
super(player, tickets);
this.firstDirection = player.getFirstDirection();
this.secondDirection = player.getSecondDirection();
}
@Override
public void encodeDescriptor(PlayerUpdateMessage message, GameFrameBuilder builder, GameFrameBuilder blockBuilder) {
builder.putBits(1, 1);
builder.putBits(2, 2);
builder.putBits(1, 1); // TODO what is this?
builder.putBits(3, firstDirection.toInteger());
builder.putBits(3, secondDirection.toInteger());
builder.putBits(1, isBlockUpdatedRequired() ? 1 : 0);
}
}