From 0427ab89f1753a44b30cbc35ce021cbbdc845109 Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Thu, 10 Aug 2017 18:52:45 +0300 Subject: fix missing source folder --- src/main/java/ihl/recipes/RecipeInputDie.java | 97 +++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/main/java/ihl/recipes/RecipeInputDie.java (limited to 'src/main/java/ihl/recipes/RecipeInputDie.java') diff --git a/src/main/java/ihl/recipes/RecipeInputDie.java b/src/main/java/ihl/recipes/RecipeInputDie.java new file mode 100644 index 0000000..8fbd4db --- /dev/null +++ b/src/main/java/ihl/recipes/RecipeInputDie.java @@ -0,0 +1,97 @@ +package ihl.recipes; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import ic2.api.recipe.IRecipeInput; +import ihl.interfaces.IWire; +import ihl.utils.IHLUtils; +import net.minecraft.item.ItemStack; + +public class RecipeInputDie implements IRecipeInput +{ + public final ItemStack input; + public final int transverseSection; + + public RecipeInputDie(String string, int transverseSection) + { + this(IHLUtils.getItemStackWithTag(string, "transverseSection", transverseSection)); + } + + public RecipeInputDie(ItemStack itemStack) + { + input=itemStack; + transverseSection=itemStack.stackTagCompound.getInteger("transverseSection"); + } + + @Override + public boolean matches(ItemStack subject) + { + return subject.getItem() == this.input.getItem() && (subject.getItemDamage() == this.input.getItemDamage() || this.input.getItemDamage() == 32767); + } + + @Override + public int getAmount() + { + return 1; + } + + @Override + public List getInputs() + { + return Arrays.asList(new ItemStack[] {this.input}); + } + + @Override + public String toString() + { + ItemStack stack = this.input.copy(); + return "RInputDice<" + stack + ">"; + } + + public List transformOutput(ItemStack matchedItemStack, List outputs) + { + List newOutputs = new ArrayList(); + int misTS = matchedItemStack.stackTagCompound.getInteger("transverseSection"); + ItemStack material; + for(ItemStack material1:outputs) + { + if(material1.getItem() instanceof IWire) + { + material=material1.copy(); + int length = material.stackTagCompound.getInteger("length"); + length = length * transverseSection / misTS; + material.stackTagCompound.setInteger("length", length); + material.stackTagCompound.setInteger("fullLength", length); + material.stackTagCompound.setInteger("transverseSection", misTS); + newOutputs.add(material); + } + else + { + newOutputs.add(material1); + } + } + return newOutputs; + } + + public int transformOutput(ItemStack matchedItemStack, ItemStack material) + { + int consumeAmountMultiplier=1; + int misTS = matchedItemStack.stackTagCompound.getInteger("transverseSection"); + if(misTS<=transverseSection) + { + int length = material.stackTagCompound.getInteger("length"); + length = length * transverseSection / misTS; + material.stackTagCompound.setInteger("length", length); + material.stackTagCompound.setInteger("fullLength", length); + } + else + { + consumeAmountMultiplier=misTS/transverseSection+1; + } + material.stackTagCompound.setInteger("transverseSection", misTS); + return consumeAmountMultiplier; + } +} + -- cgit v1.2.3