package net.scapeemulator.game.msg.encoder;
import io.netty.buffer.ByteBufAllocator;
import net.scapeemulator.game.msg.MessageEncoder;
import net.scapeemulator.game.msg.impl.inter.InterfaceVisibleMessage;
import net.scapeemulator.game.net.game.DataOrder;
import net.scapeemulator.game.net.game.DataTransformation;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrame;
import net.scapeemulator.game.net.game.GameFrameBuilder;
public final class InterfaceVisibleMessageEncoder extends MessageEncoder<InterfaceVisibleMessage> {
public InterfaceVisibleMessageEncoder() {
super(InterfaceVisibleMessage.class);
}
@Override
public GameFrame encode(ByteBufAllocator alloc, InterfaceVisibleMessage message) {
GameFrameBuilder builder = new GameFrameBuilder(alloc, 21);
builder.put(DataType.BYTE, DataTransformation.NEGATE, message.isVisible() ? 0 : 1);
builder.put(DataType.SHORT, 0);
builder.put(DataType.INT, DataOrder.LITTLE, (message.getId() << 16) | message.getSlot());
return builder.toGameFrame();
}
}