package net.scapeemulator.game.msg.encoder; import io.netty.buffer.ByteBufAllocator; import java.io.IOException; import net.scapeemulator.game.msg.MessageEncoder; import net.scapeemulator.game.msg.impl.object.GroundObjectAnimateMessage; 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; /** * @author David Insley */ public final class GroundObjectAnimateMessageEncoder extends MessageEncoder<GroundObjectAnimateMessage> { public GroundObjectAnimateMessageEncoder() { super(GroundObjectAnimateMessage.class); } @Override public GameFrame encode(ByteBufAllocator alloc, GroundObjectAnimateMessage msg) throws IOException { GameFrameBuilder builder = new GameFrameBuilder(alloc, 20); builder.put(DataType.BYTE, DataTransformation.SUBTRACT, msg.getPosition().blockHash()); builder.put(DataType.BYTE, DataTransformation.SUBTRACT, msg.infoHash()); builder.put(DataType.SHORT, DataOrder.LITTLE, msg.getAnimationId()); return builder.toGameFrame(); } }