You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.1 KiB
Java

package net.brokenmoon.afloydironchest.gui;
import net.minecraft.src.*;
public class ContainerWideChest extends Container {
private IInventory inventory;
private int numberOfRowsLower = 4;
private int numberOfRowsUpper;
public ContainerWideChest(IInventory lowerInventory, IInventory upperInventory) {
this.inventory = upperInventory;
this.numberOfRowsUpper = upperInventory.getSizeInventory() / 12;
int i = (this.numberOfRowsUpper - 4) * 18;
//Upper
for (int j = 0; j < this.numberOfRowsUpper; ++j) {
for (int i1 = 0; i1 < 12; ++i1) {
this.addSlot(new Slot(upperInventory, i1 + j * 12, -18 - 6 + i1 * 18, -36 + 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, 3 + j1 * 18, 49 + k * 18 + i));
}
}
//Taskbar
for (int l = 0; l < 9; ++l) {
this.addSlot(new Slot(lowerInventory, l, 3 + l * 18, 49 + 18 * 3 + 4 + i));
}
}
@Override
public boolean isUsableByPlayer(EntityPlayer entityplayer) {
return this.inventory.canInteractWith(entityplayer);
}
@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 * 12, this.inventorySlots.size(), true);
} else {
this.onStackMergeShiftClick(item, 0, this.numberOfRowsUpper * 12, false);
}
if (item.stackSize == 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
if (item.stackSize != originalItem.stackSize) {
slot.onPickupFromSlot(item);
}
}
}