/*******************************************************************************
* AbyssalCraft
* Copyright (c) 2012 - 2017 Shinoow.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Contributors:
* Shinoow - implementation
******************************************************************************/
package com.shinoow.abyssalcraft.common.inventory;
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;
import com.shinoow.abyssalcraft.common.blocks.tile.TileEntityRendingPedestal;
public class ContainerRendingPedestal extends Container {
private TileEntityRendingPedestal tileRendingPedestal;
public ContainerRendingPedestal(InventoryPlayer par1InventoryPlayer, TileEntityRendingPedestal par2TileEntityRendingPedestal){
tileRendingPedestal = par2TileEntityRendingPedestal;
addSlotToContainer(new SlotEnergyContainer(par2TileEntityRendingPedestal, 0, 26, 52));
addSlotToContainer(new SlotRendingStaff(par2TileEntityRendingPedestal, 1, 26, 21));
addSlotToContainer(new SlotRendingOutput(par2TileEntityRendingPedestal, 2, 73, 52));
addSlotToContainer(new SlotRendingOutput(par2TileEntityRendingPedestal, 3, 94, 52));
addSlotToContainer(new SlotRendingOutput(par2TileEntityRendingPedestal, 4, 114, 52));
addSlotToContainer(new SlotRendingOutput(par2TileEntityRendingPedestal, 5, 135, 52));
int i;
for(i = 0; i < 3; i++)
for (int j = 0; j < 9; ++j)
addSlotToContainer(new Slot(par1InventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
for (i = 0; i < 9; ++i)
addSlotToContainer(new Slot(par1InventoryPlayer, i, 8 + i * 18, 142));
}
@Override
public boolean canInteractWith(EntityPlayer var1) {
return tileRendingPedestal.isUsableByPlayer(var1);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
{
ItemStack itemstack = ItemStack.EMPTY;
Slot slot = inventorySlots.get(par2);
if (slot != null && slot.getHasStack())
{
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if (par2 == 2)
{
if (!mergeItemStack(itemstack1, 3, 39, true))
return ItemStack.EMPTY;
slot.onSlotChange(itemstack1, itemstack);
}
else if (par2 != 1 && par2 != 0)
{
// if (EngraverRecipes.instance().getEngravingResult(itemstack1) != null)
// {
// if (!mergeItemStack(itemstack1, 0, 1, false))
// return null;
// }
if (par2 >= 3 && par2 < 30)
{
if (!mergeItemStack(itemstack1, 30, 39, false))
return ItemStack.EMPTY;
}
else if (par2 >= 30 && par2 < 39 && !mergeItemStack(itemstack1, 3, 30, false))
return ItemStack.EMPTY;
}
else if (!mergeItemStack(itemstack1, 3, 39, false))
return ItemStack.EMPTY;
if (itemstack1.isEmpty())
slot.putStack(ItemStack.EMPTY);
else
slot.onSlotChanged();
if (itemstack1.getCount() == itemstack.getCount())
return ItemStack.EMPTY;
slot.onTake(par1EntityPlayer, itemstack1);
}
return itemstack;
}
}