73 lines
1.3 KiB
Java
73 lines
1.3 KiB
Java
package storagecraft.container;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.Slot;
|
|
import net.minecraft.item.ItemStack;
|
|
import storagecraft.StorageCraftItems;
|
|
import storagecraft.container.slot.SlotItemFilter;
|
|
import storagecraft.tile.TileDrive;
|
|
|
|
public class ContainerDrive extends ContainerBase
|
|
{
|
|
public ContainerDrive(EntityPlayer player, TileDrive drive)
|
|
{
|
|
super(player);
|
|
|
|
int x = 71;
|
|
int y = 20;
|
|
|
|
for (int i = 0; i < 8; ++i)
|
|
{
|
|
addSlotToContainer(new SlotItemFilter(drive, i, x, y, StorageCraftItems.STORAGE_CELL));
|
|
|
|
if ((i + 1) % 2 == 0)
|
|
{
|
|
x = 71;
|
|
y += 18;
|
|
}
|
|
else
|
|
{
|
|
x += 18;
|
|
}
|
|
}
|
|
|
|
addPlayerInventory(8, 108);
|
|
}
|
|
|
|
@Override
|
|
public ItemStack transferStackInSlot(EntityPlayer player, int index)
|
|
{
|
|
ItemStack stack = null;
|
|
|
|
Slot slot = getSlot(index);
|
|
|
|
if (slot != null && slot.getHasStack())
|
|
{
|
|
stack = slot.getStack().copy();
|
|
|
|
if (index < 8)
|
|
{
|
|
if (!mergeItemStack(stack, 8, inventorySlots.size(), true))
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
else if (!mergeItemStack(stack, 0, 8, false))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
if (stack.stackSize == 0)
|
|
{
|
|
slot.putStack(null);
|
|
}
|
|
else
|
|
{
|
|
slot.onSlotChanged();
|
|
}
|
|
}
|
|
|
|
return stack;
|
|
}
|
|
}
|