package net.scapeemulator.game.model.player.skills.herblore; import net.scapeemulator.game.dispatcher.item.ItemOnItemHandler; import net.scapeemulator.game.model.definition.ItemDefinitions; import net.scapeemulator.game.model.mob.Animation; import net.scapeemulator.game.model.player.Item; import net.scapeemulator.game.model.player.Player; import net.scapeemulator.game.model.player.SlottedItem; import net.scapeemulator.game.model.player.skills.MakeItemInterface; import net.scapeemulator.game.model.player.skills.MakeItemInterface.MakeItemInterfaceListener; /** * @author David Insley */ public class GrindingHandler extends ItemOnItemHandler { private static final int PESTLE_AND_MORTAR = 233; private static final Animation GRINDING_ANIMATION = new Animation(364); private final HerbloreRecipe recipe; public GrindingHandler(Secondary secondary) { super(secondary.getUngroundId(), PESTLE_AND_MORTAR); String message = "You grind the " + ItemDefinitions.forId(secondary.getUngroundId()).getName().toLowerCase() + " to dust."; recipe = new HerbloreRecipe(secondary.getUngroundId(), true, PESTLE_AND_MORTAR, false, 0, 0.0, secondary.getItemId(), message, GRINDING_ANIMATION, 2); } @Override public void handle(Player player, SlottedItem itemOne, SlottedItem itemTwo) { if (!recipe.getRequirements().hasRequirementsDisplayOne(player)) { return; } SlottedItem secondary = itemOne.getItem().getId() == PESTLE_AND_MORTAR ? itemTwo : itemOne; if (player.getInventory().getAmount(secondary.getItem().getId()) < 2) { player.startAction(new HerbloreAction(player, recipe, 1)); return; } MakeItemInterface.showMakeItemInterface(player, new MakeItemInterfaceListener() { @Override public void makeAllSelected() { makeAmountSelected(28); } @Override public void makeAmountSelected(int amount) { player.startAction(new HerbloreAction(player, recipe, amount)); } @Override public void cancelled() { } }, new Item(recipe.getProduct()), false); } }