package buildcraftAdditions.compat.buildcraft.recipe.tool;
import buildcraftAdditions.items.Tools.ItemKineticMultiTool;
import com.google.common.base.Strings;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
/**
* 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 KineticToolStickUpgrade implements IKineticToolUpgrade {
private final String stickName, inputStickOreDictName, prevStickName;
public KineticToolStickUpgrade(String stickName, String inputStickOreDictName) {
this(stickName, inputStickOreDictName, "NONE");
}
public KineticToolStickUpgrade(String stickName, String inputStickOreDictName, String prevStickName) {
this.stickName = stickName;
this.inputStickOreDictName = inputStickOreDictName;
this.prevStickName = prevStickName;
}
@Override
public boolean canUpgradeBeApplied(ItemStack input) {
return !ItemKineticMultiTool.isUpgradeInstalled(input, stickName) && ("NONE".equals(prevStickName) || ItemKineticMultiTool.isUpgradeInstalled(input, prevStickName));
}
@Override
public boolean doesExpansionMatch(ItemStack expansion) {
int[] oreIDs = OreDictionary.getOreIDs(expansion);
if (oreIDs != null && oreIDs.length > 0) {
for (int oreID : oreIDs) {
String oreName = OreDictionary.getOreName(oreID);
if (!Strings.isNullOrEmpty(oreName)) {
if (oreName.equals(inputStickOreDictName))
return true;
}
}
}
return false;
}
@Override
public void install(ItemStack output) {
ItemKineticMultiTool.installStick(output, stickName);
}
}