Routing system should accept I(Sided)Inventory
Stupid non-capability using n00bz0rz
This commit is contained in:
parent
6315d38c8a
commit
eb76760919
|
@ -4,6 +4,7 @@ import WayofTime.bloodmagic.item.routing.IItemFilterProvider;
|
||||||
import WayofTime.bloodmagic.routing.DefaultItemFilter;
|
import WayofTime.bloodmagic.routing.DefaultItemFilter;
|
||||||
import WayofTime.bloodmagic.routing.IInputItemRoutingNode;
|
import WayofTime.bloodmagic.routing.IInputItemRoutingNode;
|
||||||
import WayofTime.bloodmagic.routing.IItemFilter;
|
import WayofTime.bloodmagic.routing.IItemFilter;
|
||||||
|
import WayofTime.bloodmagic.util.Utils;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -30,9 +31,9 @@ public class TileInputRoutingNode extends TileFilteredRoutingNode implements IIn
|
||||||
TileEntity tile = worldObj.getTileEntity(pos.offset(side));
|
TileEntity tile = worldObj.getTileEntity(pos.offset(side));
|
||||||
if (tile != null)
|
if (tile != null)
|
||||||
{
|
{
|
||||||
if (tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite()))
|
IItemHandler handler = Utils.getInventory(tile, side.getOpposite());
|
||||||
|
if (handler != null)
|
||||||
{
|
{
|
||||||
IItemHandler handler = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite());
|
|
||||||
ItemStack filterStack = this.getFilterStack(side);
|
ItemStack filterStack = this.getFilterStack(side);
|
||||||
|
|
||||||
if (filterStack == null || !(filterStack.getItem() instanceof IItemFilterProvider))
|
if (filterStack == null || !(filterStack.getItem() instanceof IItemFilterProvider))
|
||||||
|
|
|
@ -4,6 +4,7 @@ import WayofTime.bloodmagic.item.routing.IItemFilterProvider;
|
||||||
import WayofTime.bloodmagic.routing.DefaultItemFilter;
|
import WayofTime.bloodmagic.routing.DefaultItemFilter;
|
||||||
import WayofTime.bloodmagic.routing.IItemFilter;
|
import WayofTime.bloodmagic.routing.IItemFilter;
|
||||||
import WayofTime.bloodmagic.routing.IOutputItemRoutingNode;
|
import WayofTime.bloodmagic.routing.IOutputItemRoutingNode;
|
||||||
|
import WayofTime.bloodmagic.util.Utils;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -30,9 +31,9 @@ public class TileOutputRoutingNode extends TileFilteredRoutingNode implements IO
|
||||||
TileEntity tile = worldObj.getTileEntity(pos.offset(side));
|
TileEntity tile = worldObj.getTileEntity(pos.offset(side));
|
||||||
if (tile != null)
|
if (tile != null)
|
||||||
{
|
{
|
||||||
if (tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite()))
|
IItemHandler handler = Utils.getInventory(tile, side.getOpposite());
|
||||||
|
if (handler != null)
|
||||||
{
|
{
|
||||||
IItemHandler handler = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite());
|
|
||||||
ItemStack filterStack = this.getFilterStack(side);
|
ItemStack filterStack = this.getFilterStack(side);
|
||||||
|
|
||||||
if (filterStack == null || !(filterStack.getItem() instanceof IItemFilterProvider))
|
if (filterStack == null || !(filterStack.getItem() instanceof IItemFilterProvider))
|
||||||
|
|
|
@ -48,6 +48,8 @@ import WayofTime.bloodmagic.registry.ModBlocks;
|
||||||
import WayofTime.bloodmagic.tile.TileInventory;
|
import WayofTime.bloodmagic.tile.TileInventory;
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||||
|
import net.minecraftforge.items.wrapper.SidedInvWrapper;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
@ -152,6 +154,24 @@ public class Utils
|
||||||
return false;
|
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}
|
* Gets a default block for each type of {@link EnumAltarComponent}
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue