package org.ultramine.util;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerChest extends Container
{
private IInventory block;
public ContainerChest(IInventory player, IInventory block)
{
this.block = block;
for (int j = 0, s = block.getSizeInventory()/9; j < s; j++)
{
for (int i1 = 0; i1 < 9; i1++)
{
addSlotToContainer(new Slot((IInventory)block, i1 + j * 9, 8 + i1 * 18, 18 + j * 18));
}
}
int var3 = (block.getSizeInventory()/9 - 4) * 18;
for (int j = 0; j < 3; j++)
{
for (int i1 = 0; i1 < 9; i1++)
{
addSlotToContainer(new Slot(player, i1 + j * 9 + 9, 8 + i1 * 18, 104 + j * 18 + var3));
}
}
for (int k = 0; k < 9; k++)
{
addSlotToContainer(new Slot(player, k, 8 + k * 18, 162 + var3));
}
}
public boolean canInteractWith(EntityPlayer entityplayer)
{
return block.isUseableByPlayer(entityplayer);
}
public ItemStack transferStackInSlot(EntityPlayer entity, int i)
{
ItemStack var2 = null;
Slot var3 = (Slot)this.inventorySlots.get(i);
if (var3 != null && var3.getHasStack())
{
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if (i < 54)
{
if (!this.mergeItemStack(var4, block.getSizeInventory(), this.inventorySlots.size(), true))
{
return null;
}
}
else if (!this.mergeItemStack(var4, 0, block.getSizeInventory(), false))
{
return null;
}
if (var4.stackSize == 0)
{
var3.putStack((ItemStack)null);
}
else
{
var3.onSlotChanged();
}
}
return var2;
}
}