package net.scapeemulator.game.model.player.action;
import net.scapeemulator.game.model.Position;
import net.scapeemulator.game.model.World;
import net.scapeemulator.game.model.grounditem.GroundItemList.GroundItem;
import net.scapeemulator.game.model.player.Item;
import net.scapeemulator.game.model.player.Player;
/**
* @author Hadyn Richard
* @author David Insley
*/
public final class PickupItemAction extends ReachDistancedAction {
private final int itemId;
private final Position position;
public PickupItemAction(Player player, int itemId, Position position) {
super(1, true, player, position, 0);
this.itemId = itemId;
this.position = position;
}
@Override
public void executeAction() {
// Check if the item has been removed since we started the action
GroundItem groundItem = World.getWorld().getGroundItems().get(itemId, position, mob);
if (groundItem != null) {
Item remaining = mob.getInventory().add(groundItem.toItem());
if (remaining != null) {
groundItem.setAmount(remaining.getAmount());
} else {
World.getWorld().getGroundItems().remove(itemId, position, mob);
}
}
stop();
}
}