| package ic2.api.recipe; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| import net.minecraft.item.ItemStack; |
| |
| import net.minecraftforge.oredict.OreDictionary; |
| |
| public class RecipeInputItemStack implements IRecipeInput { |
| public RecipeInputItemStack(ItemStack aInput) { |
| this(aInput, aInput.stackSize); |
| } |
| |
| public RecipeInputItemStack(ItemStack aInput, int aAmount) { |
| if (aInput.getItem() == null) throw new IllegalArgumentException("Invalid item stack specfied"); |
| |
| input = aInput.copy(); // Never forget to copy. |
| amount = aAmount; |
| } |
| |
| @Override |
| public boolean matches(ItemStack subject) { |
| return subject.getItem() == input.getItem() && (subject.getItemDamage() == input.getItemDamage() || input.getItemDamage() == OreDictionary.WILDCARD_VALUE); |
| } |
| |
| @Override |
| public int getAmount() { |
| return amount; |
| } |
| |
| @Override |
| public List<ItemStack> getInputs() { |
| return Arrays.asList(input); |
| } |
| |
| @Override |
| public String toString() { |
| ItemStack stack = input.copy(); |
| input.stackSize = amount; |
| return "RInputItemStack<"+stack+">"; |
| } |
| |
| public final ItemStack input; |
| public final int amount; |
| } |