package cofh.lib.gui.container;
import cofh.api.core.ICustomInventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
public class CustomInventoryWrapper implements IInventory {
private final ItemStack[] inventory;
public CustomInventoryWrapper(ICustomInventory customInv, int inventoryIndex) {
inventory = customInv.getInventorySlots(0);
}
@Override
public int getSizeInventory() {
return inventory.length;
}
@Override
public ItemStack getStackInSlot(int slot) {
return inventory[slot];
}
@Override
public ItemStack decrStackSize(int slot, int amount) {
if (inventory[slot] == null) {
return null;
}
if (inventory[slot].stackSize <= amount) {
amount = inventory[slot].stackSize;
}
ItemStack stack = inventory[slot].splitStack(amount);
if (inventory[slot].stackSize <= 0) {
inventory[slot] = null;
}
return stack;
}
@Override
public ItemStack getStackInSlotOnClosing(int slot) {
if (inventory[slot] == null) {
return null;
}
ItemStack stack = inventory[slot];
inventory[slot] = null;
return stack;
}
@Override
public void setInventorySlotContents(int slot, ItemStack stack) {
inventory[slot] = stack;
if (stack != null && stack.stackSize > getInventoryStackLimit()) {
stack.stackSize = getInventoryStackLimit();
}
}
@Override
public String getInventoryName() {
return "container.crafting";
}
@Override
public boolean hasCustomInventoryName() {
return false;
}
@Override
public int getInventoryStackLimit() {
return 64;
}
@Override
public void markDirty() {
}
@Override
public boolean isUseableByPlayer(EntityPlayer player) {
return true;
}
@Override
public void openInventory() {
}
@Override
public void closeInventory() {
}
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
return true;
}
}