From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/processing/invslots/IHLInvSlotOutput.java | 211 ++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 ihl/processing/invslots/IHLInvSlotOutput.java (limited to 'ihl/processing/invslots/IHLInvSlotOutput.java') diff --git a/ihl/processing/invslots/IHLInvSlotOutput.java b/ihl/processing/invslots/IHLInvSlotOutput.java new file mode 100644 index 0000000..94bf3c8 --- /dev/null +++ b/ihl/processing/invslots/IHLInvSlotOutput.java @@ -0,0 +1,211 @@ +package ihl.processing.invslots; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +import ic2.core.block.TileEntityInventory; +import ic2.core.block.invslot.InvSlotOutput; +import ihl.recipes.RecipeOutputItemStack; +import ihl.utils.IHLUtils; + +public class IHLInvSlotOutput extends InvSlotOutput{ + + private final Map substanceAmount = new HashMap(); + public IHLInvSlotOutput(TileEntityInventory base1, String name1, int oldStartIndex1, int count) { + super(base1, name1, oldStartIndex1, count); + } + + @Override + public boolean canAdd(List itemOutputs) + { + if(itemOutputs==null || itemOutputs.isEmpty()) + { + return true; + } + Iterator ioi = itemOutputs.iterator(); + if(this.size()>=itemOutputs.size()) + { + Object rois; + if(ioi.hasNext()) + { + rois = ioi.next(); + } + else + { + return true; + } + for(int i=0;i=1) + { + amount--; + this.add(rois.itemStack.copy()); + } + this.substanceAmount.put(key, amount); + } + + @Override + public int add(List itemOutputs) + { + if(itemOutputs==null || itemOutputs.isEmpty()) + { + return 0; + } + Iterator ioi = itemOutputs.iterator(); + if(this.size()>=itemOutputs.size() && ioi.hasNext()) + { + Object rois = ioi.next(); + for(int i=0;i> entrySetIterator = this.substanceAmount.entrySet().iterator(); + while(entrySetIterator.hasNext()) + { + Entry entry = entrySetIterator.next(); + NBTTagCompound tag = new NBTTagCompound(); + tag.setLong("substanceKey", entry.getKey()); + tag.setFloat("substanceAmount", entry.getValue()); + sAmountsList.appendTag(tag); + } + nbtTagCompound.setTag("substanceAmountMap", sAmountsList); + } +} -- cgit v1.2.3