private static void handleRepair(AnvilUpdateEvent evt, @Nonnull IDarkSteelItem item) { final ItemStack targetStack = evt.getLeft(); final ItemStack ingots = evt.getRight(); // repair event final int maxIngots = item.getIngotsRequiredForFullRepair(); int ingouts = ingots.getCount(); final int damage = targetStack.getItemDamage(); final int maxDamage = targetStack.getMaxDamage(); final double damPerc = (double) damage / maxDamage; int requiredIngots = (int) Math.ceil(damPerc * maxIngots); if (ingouts > requiredIngots) { ingouts = requiredIngots; } final int damageAddedPerIngot = (int) Math.ceil((double) maxDamage / maxIngots); final int totalDamageRemoved = damageAddedPerIngot * ingouts; final ItemStack resultStack = targetStack.copy(); resultStack.setItemDamage(Math.max(0, damage - totalDamageRemoved)); evt.setOutput(resultStack); evt.setCost(ingouts + (int) Math.ceil(getEnchantmentRepairCost(resultStack.copy()) / 2d)); evt.setMaterialCost(ingouts); }
evt.setMaterialCost(stack.getCount()); evt.setCost((int) (baselevel * baselevel) * stack.getCount());
@SubscribeEvent public static void onAnvil(AnvilUpdateEvent event) { ItemStack upgraded = tryUpgradeBackpack(event.getLeft(), event.getRight()); if (!upgraded.isEmpty()) { event.setOutput(upgraded); event.setCost(1); event.setMaterialCost(1); } else if (event.getRight().getItem() instanceof ItemShears) { ItemStack removed = tryRemoveUpgrade(event.getLeft()); if (!removed.isEmpty()) { event.setOutput(removed); event.setCost(1); event.setMaterialCost(0); } } }
@SubscribeEvent public void onAnvilUpdate(AnvilUpdateEvent event) { if ((event.getLeft().getItem() instanceof GadgetGeneric) && (event.getRight().getItem() == Items.DIAMOND)) { event.setCost(3); event.setMaterialCost(1); ItemStack newItem = event.getLeft().copy(); newItem.setItemDamage(0); event.setOutput(newItem); } } }
@SubscribeEvent public void onAnvilRepair(AnvilUpdateEvent event) { if (!event.getLeft().isEmpty() && !event.getRight().isEmpty() && event.getLeft().getItem() == MatterOverdrive.ITEMS.portableDecomposer) { event.setOutput(event.getLeft().copy()); event.setMaterialCost(1); event.setCost(3); MatterOverdrive.ITEMS.portableDecomposer.addStackToList(event.getOutput(), event.getRight()); } }
event.setMaterialCost(0); } else { int amount = (int) Math.ceil(((double) damage / (double) repairPerItem) + .5d); int lengthDifference = event.getName() != null ? event.getName().length() - event.getLeft().getDisplayName().length() : 0; event.setCost(amount + (int) (event.getName() != null ? lengthDifference * 0.25D : 0)); event.setMaterialCost(amount);
@SubscribeEvent public void onAnvilUpdate (AnvilUpdateEvent event) { for (final IAnvilRecipe recipe : BookshelfRegistry.getAnvilRecipes()) { if (recipe.isValidRecipe(event.getLeft(), event.getRight(), event.getName())) { event.setCost(recipe.getExperienceCost(event.getLeft(), event.getRight(), event.getName())); event.setMaterialCost(recipe.getMaterialCost(event.getLeft(), event.getRight(), event.getName())); event.setOutput(recipe.getOutput(event.getLeft(), event.getRight(), event.getName())); return; } } }