package net.scapeemulator.game.msg.decoder.item;
import java.io.IOException;
import net.scapeemulator.game.msg.MessageDecoder;
import net.scapeemulator.game.msg.impl.item.ItemOnGroundItemMessage;
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.GameFrameReader;
/**
* @author zuppers
*/
public final class ItemOnGroundItemMessageDecoder extends MessageDecoder<ItemOnGroundItemMessage> {
public ItemOnGroundItemMessageDecoder() {
super(101);
}
@Override
public ItemOnGroundItemMessage decode(GameFrame frame) throws IOException {
GameFrameReader reader = new GameFrameReader(frame);
int x = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
int slot = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
int itemId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
int groundItemId = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE);
int y = (int) reader.getUnsigned(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD);
int widgetHash = (int) reader.getUnsigned(DataType.INT, DataOrder.INVERSED_MIDDLE);
return new ItemOnGroundItemMessage(x, y, slot, itemId, groundItemId, widgetHash);
}
}