Routing system should accept I(Sided)Inventory

Stupid non-capability using n00bz0rz
This commit is contained in:
Nicholas Ignoffo 2016-06-21 19:33:26 -07:00
parent 6315d38c8a
commit eb76760919
3 changed files with 26 additions and 4 deletions

View file

@ -48,6 +48,8 @@ import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.tile.TileInventory;
import com.google.common.collect.Iterables;
import net.minecraftforge.items.wrapper.InvWrapper;
import net.minecraftforge.items.wrapper.SidedInvWrapper;
import javax.annotation.Nullable;
@ -152,6 +154,24 @@ public class Utils
return false;
}
@Nullable
public static IItemHandler getInventory(TileEntity tile, @Nullable EnumFacing facing)
{
if (facing == null)
facing = EnumFacing.DOWN;
IItemHandler itemHandler = null;
if (tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, facing))
itemHandler = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, facing);
else if (tile instanceof ISidedInventory)
itemHandler = ((ISidedInventory) tile).getSlotsForFace(facing).length != 0 ? new SidedInvWrapper((ISidedInventory) tile, facing) : null;
else if (tile instanceof IInventory)
itemHandler = new InvWrapper((IInventory) tile);
return itemHandler;
}
/**
* Gets a default block for each type of {@link EnumAltarComponent}
*