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); } @SuppressWarnings("rawtypes") @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 @SuppressWarnings("rawtypes") 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); } }