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.
60 lines
2.0 KiB
Java
60 lines
2.0 KiB
Java
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);
|
|
}
|
|
}
|