electrodynamics/archaic/src/main/scala/resonantinduction/archaic/crate/InventoryCrate.java
2014-03-23 17:19:47 +08:00

70 lines
1.5 KiB
Java

package resonantinduction.archaic.crate;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import calclavia.lib.utility.inventory.ExternalInventory;
public class InventoryCrate extends ExternalInventory
{
public InventoryCrate(TileEntity crate)
{
super(crate, 512);
}
/** Clones the single stack into an inventory format for automation interaction */
public void buildInventory(ItemStack sampleStack)
{
this.containedItems = new ItemStack[this.getSizeInventory()];
if (sampleStack != null && sampleStack.getItem() != null)
{
ItemStack baseStack = sampleStack.copy();
int itemsLeft = baseStack.stackSize;
for (int slot = 0; slot < this.getContainedItems().length; slot++)
{
int stackL = Math.min(Math.min(itemsLeft, baseStack.getMaxStackSize()), this.getInventoryStackLimit());
this.getContainedItems()[slot] = baseStack.copy();
this.getContainedItems()[slot].stackSize = stackL;
itemsLeft -= stackL;
if (baseStack.stackSize <= 0)
{
baseStack = null;
break;
}
}
}
}
@Override
public int getSizeInventory()
{
if (this.hostTile instanceof TileCrate)
{
return ((TileCrate) this.hostTile).getSlotCount();
}
return 512;
}
@Override
public String getInvName()
{
return "inv.Crate";
}
@Override
public void save(NBTTagCompound nbt)
{
}
@Override
public void load(NBTTagCompound nbt)
{
if (nbt.hasKey("Items"))
{
super.load(nbt);
}
}
}