/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [Jan 30, 2014, 5:57:07 PM (GMT)]
*/
package vazkii.botania.api.recipe;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
public class RecipeManaInfusion {
ItemStack output;
Object input;
int mana;
boolean isAlchemy = false;
boolean isConjuration = false;
public RecipeManaInfusion(ItemStack output, Object input, int mana) {
this.output = output;
this.input = input;
this.mana = mana;
}
public boolean matches(ItemStack stack) {
if(input instanceof ItemStack) {
ItemStack inputCopy = ((ItemStack) input).copy();
if(inputCopy.getItemDamage() == Short.MAX_VALUE)
inputCopy.setItemDamage(stack.getItemDamage());
return stack.isItemEqual(inputCopy);
}
if(input instanceof String) {
List<ItemStack> validStacks = OreDictionary.getOres((String) input);
for(ItemStack ostack : validStacks) {
ItemStack cstack = ostack.copy();
if(cstack.getItemDamage() == Short.MAX_VALUE)
cstack.setItemDamage(stack.getItemDamage());
if(stack.isItemEqual(cstack))
return true;
}
}
return false;
}
public void setAlchemy(boolean alchemy) {
isAlchemy = alchemy;
}
public boolean isAlchemy() {
return isAlchemy;
}
public void setConjuration(boolean conjuration) {
isConjuration = conjuration;
}
public boolean isConjuration() {
return isConjuration;
}
public Object getInput() {
return input;
}
public ItemStack getOutput() {
return output;
}
public int getManaToConsume() {
return mana;
}
}