package net.brokenmoon.afloydtubemod.gui; import net.minecraft.src.*; public class ContainerTransposer extends Container { private IInventory inventory; private int numberOfRowsUpper; public ContainerTransposer(IInventory lowerInventory, IInventory upperInventory) { this.inventory = upperInventory; this.numberOfRowsUpper = upperInventory.getSizeInventory() / 3; //Upper for (int j = 0; j < this.numberOfRowsUpper; ++j) { for (int i1 = 0; i1 < 12; ++i1) { this.addSlot(new Slot(upperInventory, i1 + j * 12, 8 + i1 * 18, 8 + j * 18)); } } //Lower for (int k = 0; k < 3; ++k) { for (int j1 = 0; j1 < 9; ++j1) { this.addSlot(new Slot(lowerInventory, j1 + k * 9 + 9, 8 + 18 + 9 + j1 * 18, 174 + k * 18)); } } //Taskbar for (int l = 0; l < 9; ++l) { this.addSlot(new Slot(lowerInventory, l, 8 + 18 + 9 + l * 18, 232)); } } @Override public void quickMoveItems(int slotID, EntityPlayer player, boolean shift, boolean control) { Slot slot = (Slot)this.inventorySlots.get(slotID); if (slot == null || !slot.hasStack()) { return; } ItemStack item = slot.getStack(); ItemStack originalItem = item.copy(); if (slotID < this.numberOfRowsUpper * 12) { this.onStackMergeShiftClick(item, this.numberOfRowsUpper * 3, this.inventorySlots.size(), true); } else { this.onStackMergeShiftClick(item, 0, this.numberOfRowsUpper * 3, false); } if (item.stackSize == 0) { slot.putStack(null); } else { slot.onSlotChanged(); } if (item.stackSize != originalItem.stackSize) { slot.onPickupFromSlot(item); } } @Override public boolean isUsableByPlayer(EntityPlayer entityPlayer) { return this.inventory.canInteractWith(entityPlayer); } }