/**
* Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
* <p/>
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.core.lib.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
public abstract class InventoryWrapper implements ISidedInventory {
IInventory inventory;
public InventoryWrapper(IInventory inventory) {
this.inventory = inventory;
}
/* DIRECT MAPPING */
@Override
public int getSizeInventory() {
return inventory.getSizeInventory();
}
@Override
public ItemStack getStackInSlot(int slotIndex) {
return inventory.getStackInSlot(slotIndex);
}
@Override
public ItemStack decrStackSize(int slotIndex, int amount) {
return inventory.decrStackSize(slotIndex, amount);
}
@Override
public ItemStack getStackInSlotOnClosing(int slotIndex) {
return inventory.getStackInSlotOnClosing(slotIndex);
}
@Override
public void setInventorySlotContents(int slotIndex, ItemStack itemstack) {
inventory.setInventorySlotContents(slotIndex, itemstack);
}
@Override
public String getInventoryName() {
return inventory.getInventoryName();
}
@Override
public int getInventoryStackLimit() {
return inventory.getInventoryStackLimit();
}
@Override
public void markDirty() {
inventory.markDirty();
}
@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer) {
return inventory.isUseableByPlayer(entityplayer);
}
@Override
public void openInventory() {
inventory.openInventory();
}
@Override
public void closeInventory() {
inventory.closeInventory();
}
@Override
public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) {
return inventory.isItemValidForSlot(slotIndex, itemstack);
}
@Override
public boolean hasCustomInventoryName() {
return inventory.hasCustomInventoryName();
}
/* STATIC HELPER */
public static ISidedInventory getWrappedInventory(Object inventory) {
if (inventory instanceof ISidedInventory) {
return (ISidedInventory) inventory;
} else if (inventory instanceof IInventory) {
return new InventoryWrapperSimple(InvUtils.getInventory((IInventory) inventory));
} else {
return null;
}
}
}