Minor changes, nothing noticeable

This commit is contained in:
Aidan C. Brady 2013-11-06 16:04:34 -05:00
parent a80b18b412
commit b1f2a61e20
4 changed files with 67 additions and 26 deletions

View file

@ -13,7 +13,7 @@ import mekanism.common.PacketHandler;
import mekanism.common.PacketHandler.Transmission;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity;
import mekanism.common.transporter.SlotInfo;
import mekanism.common.transporter.InvStack;
import mekanism.common.transporter.TransporterFilter;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.TransporterUtils;
@ -78,16 +78,16 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen
IInventory inventory = (IInventory)back;
TileEntityLogisticalTransporter transporter = (TileEntityLogisticalTransporter)front;
SlotInfo inInventory = TransporterUtils.takeItem(inventory, ForgeDirection.getOrientation(facing).getOpposite().ordinal());
InvStack inInventory = TransporterUtils.takeItem(inventory, ForgeDirection.getOrientation(facing).getOpposite().ordinal());
if(inInventory != null && inInventory.itemStack != null)
if(inInventory != null && inInventory.getStack() != null)
{
boolean hasFilter = false;
EnumColor filterColor = color;
for(TransporterFilter filter : filters)
{
if(filter.canFilter(inInventory.itemStack))
if(filter.canFilter(inInventory.getStack()))
{
filterColor = filter.color;
hasFilter = true;
@ -95,13 +95,13 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen
}
}
if((hasFilter || autoEject) && TransporterUtils.insert(this, transporter, inInventory.itemStack, filterColor))
if((hasFilter || autoEject) && TransporterUtils.insert(this, transporter, inInventory.getStack(), filterColor))
{
inventory.setInventorySlotContents(inInventory.slotID, null);
inInventory.use();
setActive(true);
}
else {
inventory.setInventorySlotContents(inInventory.slotID, inInventory.itemStack);
inInventory.reset();
}
}

View file

@ -0,0 +1,54 @@
package mekanism.common.transporter;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
public final class InvStack
{
public IInventory inventory;
public ItemStack[] itemStacks;
public int[] slotIDs;
public InvStack(IInventory inv, ItemStack[] stacks, int[] ids)
{
inventory = inv;
itemStacks = stacks;
slotIDs = ids;
}
public ItemStack getStack()
{
int size = 0;
for(ItemStack stack : itemStacks)
{
size += stack.stackSize;
}
if(itemStacks[0] != null)
{
ItemStack ret = itemStacks[0].copy();
ret.stackSize = size;
return ret;
}
return null;
}
public void use()
{
for(int id : slotIDs)
{
inventory.setInventorySlotContents(id, null);
}
}
public void reset()
{
for(int i = 0; i < slotIDs.length; i++)
{
inventory.setInventorySlotContents(slotIDs[i], itemStacks[i]);
}
}
}

View file

@ -1,15 +0,0 @@
package mekanism.common.transporter;
import net.minecraft.item.ItemStack;
public final class SlotInfo
{
public ItemStack itemStack;
public int slotID;
public SlotInfo(ItemStack stack, int i)
{
itemStack = stack;
slotID = i;
}
}

View file

@ -8,7 +8,7 @@ import mekanism.api.IConfigurable;
import mekanism.api.Object3D;
import mekanism.api.transmitters.ITransmitter;
import mekanism.common.tileentity.TileEntityLogisticalTransporter;
import mekanism.common.transporter.SlotInfo;
import mekanism.common.transporter.InvStack;
import mekanism.common.transporter.TransporterStack;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.IInventory;
@ -385,10 +385,12 @@ public final class TransporterUtils
return toInsert;
}
public static SlotInfo takeItem(IInventory inventory, int side)
public static InvStack takeItem(IInventory inventory, int side)
{
if(!(inventory instanceof ISidedInventory))
{
inventory = checkChestInv(inventory);
for(int i = inventory.getSizeInventory() - 1; i >= 0; i--)
{
if(inventory.getStackInSlot(i) != null)
@ -396,7 +398,7 @@ public final class TransporterUtils
ItemStack toSend = inventory.getStackInSlot(i).copy();
inventory.setInventorySlotContents(i, null);
return new SlotInfo(toSend, i);
return new InvStack(inventory, new ItemStack[] {toSend}, new int[] {i});
}
}
}
@ -418,7 +420,7 @@ public final class TransporterUtils
{
sidedInventory.setInventorySlotContents(slotID, null);
return new SlotInfo(toSend, slotID);
return new InvStack(inventory, new ItemStack[] {toSend}, new int[] {slotID});
}
}
}