public class ContainerCustomPlayer extends Container {
private final EntityPlayer player;
private static final int ARMOR_START = InventoryCustomPlayer.INV_SIZE, ARMOR_END = ARMOR_START+3,
INV_START = ARMOR_END+0/* 1 */, INV_END = INV_START+0/* 26 */, HOTBAR_START = INV_END+1, HOTBAR_END = HOTBAR_START+8;
public ContainerCustomPlayer(EntityPlayer player, InventoryPlayer inventoryPlayer, InventoryCustomPlayer inventoryCustom) {
this.player = player;
int i;
int j;
int x = 50000;
int y = 50000;
int z = 50000;
addSlotToContainer(new SlotHead(inventoryCustom, 0, 116, 8));
addSlotToContainer(new SlotBackpack(inventoryCustom, 1, 116, 26));
for (i = 0; i < 4; ++i) {
addSlotToContainer(new SlotArmor(player, inventoryPlayer, inventoryPlayer.getSizeInventory() - 1 - i, 44, 8 + i * 18, i));
}
Slot slot = (Slot) this.inventorySlots.get(1);
if (slot != null && slot.getHasStack()) {
Item equip = slot.getStack().getItem();
if (equip == Items.schoolRucksack) {
x = 1; y = 50000; z = 50000;
} else if (equip == Items.mediumRucksack) {
x = 1; y = 1; z = 50000;
} else if (equip == Items.militaryRucksack) {
x = 1; y = 1; z = 1;
}
} else {
x = 50000; y = 50000; z = 50000;
}
for (j = 0; j < 9; ++j) {
addSlotToContainer(new Slot(inventoryPlayer, j + 9, 8 + j * 18, 84*x));
}
for (j = 0; j < 9; ++j) {
addSlotToContainer(new Slot(inventoryPlayer, j + 18, 8 + j * 18, 102*y));
}
for (j = 0; j < 9; ++j) {
addSlotToContainer(new Slot(inventoryPlayer, j + 27, 8 + j * 18, 120*z));
}
for (i = 0; i < 9; ++i) {
addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142));
}
super.detectAndSendChanges();
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return true;
}
public ItemStack transferStackInSlot(EntityPlayer player, int par2) {
ItemStack itemstack = null;
Slot slot = (Slot) this.inventorySlots.get(par2);
if (slot != null && slot.getHasStack()) {
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if (itemstack1.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
if (itemstack1.stackSize == itemstack.stackSize) {
return null;
}
slot.onPickupFromSlot(player, itemstack1);
}
return itemstack;
}
public void onContainerClosed(EntityPlayer player) {
super.onContainerClosed(player);
Slot slot = (Slot) this.inventorySlots.get(1);
if (slot != null && slot.getHasStack()) {
Item equip = slot.getStack().getItem();
if (equip == Items.schoolRucksack) {
for (int i = 18; i < 36; ++i) {
ItemStack itemstack = player.inventory.getStackInSlotOnClosing(i);
if (itemstack != null) {
player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
} else if (equip == Items.mediumRucksack) {
for (int i = 27; i < 36; ++i) {
ItemStack itemstack = player.inventory.getStackInSlotOnClosing(i);
if (itemstack != null) {
player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
}
} else {
for (int i = 9; i < 36; ++i) {
ItemStack itemstack = player.inventory.getStackInSlotOnClosing(i);
if (itemstack != null) {
player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
}
}