package buildcraftAdditions.compat.buildcraft.recipe.tool; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import buildcraftAdditions.items.Tools.ItemKineticMultiTool; import buildcraftAdditions.utils.Utils; /** * Copyright (c) 2014-2015, AEnterprise * http://buildcraftadditions.wordpress.com/ * Buildcraft Additions is distributed under the terms of GNU GPL v3.0 * Please check the contents of the license located in * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/ */ public class KineticToolUpgrade implements IKineticToolUpgrade { private final String upgradeName; private final ItemStack upgradeStack; public KineticToolUpgrade(String upgradeName, Block upgradeBlock) { this(upgradeName, new ItemStack(upgradeBlock)); } public KineticToolUpgrade(String upgradeName, Item upgradeItem) { this(upgradeName, new ItemStack(upgradeItem)); } public KineticToolUpgrade(String upgradeName, ItemStack upgradeStack) { this.upgradeName = upgradeName; this.upgradeStack = upgradeStack; } @Override public boolean canUpgradeBeApplied(ItemStack input) { return !ItemKineticMultiTool.isUpgradeInstalled(input, upgradeName) && ItemKineticMultiTool.canInstallUpgrade(input, upgradeName); } @Override public boolean doesExpansionMatch(ItemStack expansion) { return Utils.areItemStacksEqualRecipe(upgradeStack, expansion); } @Override public void install(ItemStack output) { ItemKineticMultiTool.installUpgrade(output, upgradeName); } }