summaryrefslogtreecommitdiff
path: root/ihl/recipes/RecipeInputWire.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
committerFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
commit05c78126859231a68e199dc34613689bd0978e2f (patch)
tree050bea104a18c72905095d29f31bec2935a27a24 /ihl/recipes/RecipeInputWire.java
Initial commit
Diffstat (limited to 'ihl/recipes/RecipeInputWire.java')
-rw-r--r--ihl/recipes/RecipeInputWire.java87
1 files changed, 87 insertions, 0 deletions
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<ItemStack> getInputs()
+ {
+ return Arrays.asList(new ItemStack[] {this.input});
+ }
+
+ @Override
+ public String toString()
+ {
+ ItemStack stack = this.input.copy();
+ return "RInputWireItemStack<" + stack + ">";
+ }
+}
+