From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/recipes/RecipeInputWire.java | 87 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 ihl/recipes/RecipeInputWire.java (limited to 'ihl/recipes/RecipeInputWire.java') diff --git a/ihl/recipes/RecipeInputWire.java b/ihl/recipes/RecipeInputWire.java new file mode 100644 index 0000000..720fe1b --- /dev/null +++ b/ihl/recipes/RecipeInputWire.java @@ -0,0 +1,87 @@ +package ihl.recipes; + +import java.util.Arrays; +import java.util.List; + +import ic2.api.recipe.IRecipeInput; +import ihl.interfaces.IWire; +import ihl.items_blocks.FlexibleCableItem; +import ihl.utils.IHLUtils; +import net.minecraft.item.ItemStack; + +public class RecipeInputWire implements IRecipeInput +{ + public final ItemStack input; + public final int amount; + + public RecipeInputWire(ItemStack aInput) + { + this(aInput, IHLUtils.getWireLength(aInput)); + } + + public RecipeInputWire(ItemStack aInput, int aAmount) + { + if (aInput.getItem() == null || !(aInput.getItem() instanceof IWire)) + { + throw new IllegalArgumentException("Invalid item stack specfied"); + } + else + { + this.input = aInput.copy(); + this.amount = aAmount; + } + } + + public RecipeInputWire(String string, int i) + { + this(IHLUtils.getThisModWireItemStackWithLength(string, i),i); + } + + public RecipeInputWire(String material, int length, int transverseSection) + { + this(IHLUtils.getUninsulatedWire(material, length, transverseSection),length); + } + + public RecipeInputWire(String material, int length, int transverseSection, String insulationMaterial, int insulationThickness, int insulationBreakdownVoltage) + { + this(IHLUtils.getInsulatedWire(material, length, transverseSection, insulationMaterial, insulationThickness),length); + } + + @Override + public boolean matches(ItemStack subject) + { + if(subject.getItem() == this.input.getItem() && (subject.getItemDamage() == this.input.getItemDamage() || this.input.getItemDamage() == 32767)) + { + if(subject.getItem() instanceof FlexibleCableItem) + { + FlexibleCableItem item = (FlexibleCableItem) subject.getItem(); + return item.isSameWire(this.input, subject); + } + else + { + return true; + } + } + return false; + } + + @Override + public int getAmount() + { + return this.amount; + } + + @Override + public List getInputs() + { + return Arrays.asList(new ItemStack[] {this.input}); + } + + @Override + public String toString() + { + ItemStack stack = this.input.copy(); + return "RInputWireItemStack<" + stack + ">"; + } +} + -- cgit v1.2.3