package cofh.lib.gui.slot;
import cofh.api.core.ICustomInventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class SlotCustomInventory extends Slot {
ICustomInventory customInv;
int inventoryIndex = 0;
boolean canTake = true;
public SlotCustomInventory(ICustomInventory tile, int invIndex, IInventory inventory, int slotIndex, int x, int y, boolean lootable) {
super(inventory, slotIndex, x, y);
customInv = tile;
inventoryIndex = invIndex;
canTake = lootable;
}
@Override
public ItemStack getStack() {
return customInv.getInventorySlots(inventoryIndex)[getSlotIndex()];
}
@Override
public void putStack(ItemStack stack) {
customInv.getInventorySlots(inventoryIndex)[getSlotIndex()] = stack;
onSlotChanged();
}
@Override
public void onSlotChanged() {
customInv.onSlotUpdate();
}
@Override
public int getSlotStackLimit() {
return customInv.getSlotStackLimit(getSlotIndex());
}
@Override
public ItemStack decrStackSize(int amount) {
if (customInv.getInventorySlots(inventoryIndex)[getSlotIndex()] == null) {
return null;
}
if (customInv.getInventorySlots(inventoryIndex)[getSlotIndex()].stackSize <= amount) {
amount = customInv.getInventorySlots(inventoryIndex)[getSlotIndex()].stackSize;
}
ItemStack stack = customInv.getInventorySlots(inventoryIndex)[getSlotIndex()].splitStack(amount);
if (customInv.getInventorySlots(inventoryIndex)[getSlotIndex()].stackSize <= 0) {
customInv.getInventorySlots(inventoryIndex)[getSlotIndex()] = null;
}
return stack;
}
@Override
public boolean isSlotInInventory(IInventory inventory, int slot) {
return false;
}
@Override
public boolean canTakeStack(EntityPlayer par1EntityPlayer) {
return canTake;
}
}