private boolean onAnvilChange(@Nonnull ItemStack inputItem, @Nonnull ItemStack modifierItem, String itemName, int baseCost) { AnvilUpdateEvent e = new AnvilUpdateEvent(inputItem, modifierItem, itemName, baseCost); if (MinecraftForge.EVENT_BUS.post(e)) return false; if (!e.getOutput().isEmpty()) { this.outputStack = e.getOutput(); this.maximumCost = e.getCost(); this.materialCost = e.getMaterialCost(); return false; } return true; }
@SubscribeEvent public void handleAnvilEvent(AnvilUpdateEvent evt) { if (Prep.isInvalid(evt.getLeft()) || evt.getLeft().getCount() != 1 || evt.getLeft().getItem() != block_powered_spawner.getItem()) { return; } if (Prep.isInvalid(evt.getRight()) || evt.getRight().getCount() != 1 || evt.getRight().getItem() != ModObject.itemBrokenSpawner.getItem()) { return; } CapturedMob spawnerType = CapturedMob.create(evt.getRight()); if (spawnerType == null || isBlackListed(spawnerType.getEntityName())) { return; } evt.setCost(SpawnerConfig.powerSpawnerAddSpawnerCost.get()); evt.setOutput(evt.getLeft().copy()); evt.getOutput().setTagCompound(spawnerType.toNbt(evt.getOutput().getTagCompound())); }
@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()); } }