2014-12-15 00:11:48 +00:00
|
|
|
package com.cricketcraft.chisel.inventory;
|
|
|
|
|
|
|
|
|
|
import com.cricketcraft.chisel.block.tileentity.TileEntityAutoChisel;
|
2014-10-27 16:26:14 -04:00
|
|
|
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
|
|
|
import net.minecraft.inventory.Container;
|
|
|
|
|
import net.minecraft.inventory.Slot;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
|
|
|
|
|
public class ContainerAutoChisel extends Container {
|
|
|
|
|
|
|
|
|
|
public static TileEntityAutoChisel autoChisel;
|
|
|
|
|
public static EntityPlayer player;
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
public ContainerAutoChisel(InventoryPlayer player, TileEntityAutoChisel tileEntityAutoChisel) {
|
2014-10-27 16:26:14 -04:00
|
|
|
|
|
|
|
|
this.player = player.player;
|
|
|
|
|
autoChisel = tileEntityAutoChisel;
|
|
|
|
|
|
|
|
|
|
addSlotToContainer(new Slot(tileEntityAutoChisel, 0, 53, 15));
|
2014-10-31 19:47:22 -04:00
|
|
|
addSlotToContainer(new Slot(tileEntityAutoChisel, 1, 78, 51));
|
|
|
|
|
addSlotToContainer(new Slot(tileEntityAutoChisel, 2, 103, 15));
|
2014-10-27 16:26:14 -04:00
|
|
|
|
|
|
|
|
bindPlayerInventory(player);
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
protected void bindPlayerInventory(InventoryPlayer invPlayer) {
|
|
|
|
|
for (int row = 0; row < 3; row++) {
|
|
|
|
|
for (int column = 0; column < 9; column++) {
|
2014-10-27 16:26:14 -04:00
|
|
|
addSlotToContainer(new Slot(invPlayer, column + row * 9 + 9, 8 + column * 18, 84 + row * 18));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
for (int slotNumber = 0; slotNumber < 9; slotNumber++) {
|
2014-10-27 16:26:14 -04:00
|
|
|
addSlotToContainer(new Slot(invPlayer, slotNumber, 8 + slotNumber * 18, 142));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean canInteractWith(EntityPlayer player) {
|
|
|
|
|
return autoChisel.isUseableByPlayer(player);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2014-11-26 20:03:54 -05:00
|
|
|
public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) {
|
|
|
|
|
ItemStack itemStack = null;
|
|
|
|
|
Slot slot = (Slot) this.inventorySlots.get(slotNumber);
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
if (slot != null && slot.getHasStack()) {
|
|
|
|
|
ItemStack itemStack1 = slot.getStack();
|
|
|
|
|
itemStack = itemStack1.copy();
|
2014-10-27 16:26:14 -04:00
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
if (slotNumber == 2) {
|
|
|
|
|
if (!this.mergeItemStack(itemStack1, 3, 39, true)) {
|
2014-10-29 18:10:28 -04:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
slot.onSlotChange(itemStack1, itemStack);
|
|
|
|
|
} else if (slotNumber != 1 && slotNumber != 0) {
|
|
|
|
|
if (!this.mergeItemStack(itemStack1, 0, 1, true)) {
|
|
|
|
|
return null;
|
|
|
|
|
} else if (slotNumber >= 3 && slotNumber < 30) {
|
|
|
|
|
if (this.mergeItemStack(itemStack1, 30, 39, false)) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
} else if (slotNumber >= 30 && slotNumber < 39 && !this.mergeItemStack(itemStack1, 3, 30, false)) {
|
2014-10-27 16:26:14 -04:00
|
|
|
return null;
|
|
|
|
|
}
|
2014-11-26 20:03:54 -05:00
|
|
|
} else if (this.mergeItemStack(itemStack1, 3, 39, false)) {
|
2014-10-27 16:26:14 -04:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
if (itemStack1.stackSize == 0) {
|
|
|
|
|
slot.putStack(null);
|
2014-10-27 16:26:14 -04:00
|
|
|
} else {
|
2014-11-26 20:03:54 -05:00
|
|
|
slot.onSlotChanged();
|
2014-10-27 16:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
if (itemStack1.stackSize == itemStack.stackSize) {
|
2014-10-27 16:26:14 -04:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
slot.onPickupFromSlot(player, itemStack1);
|
2014-10-27 16:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
2014-11-26 20:03:54 -05:00
|
|
|
return itemStack;
|
2014-10-27 16:26:14 -04:00
|
|
|
}
|
|
|
|
|
}
|