BloodMagic/src/main/java/WayofTime/bloodmagic/tile/routing/TileOutputRoutingNode.java

54 lines
1.7 KiB
Java
Raw Normal View History

2016-01-12 12:38:51 -05:00
package WayofTime.bloodmagic.tile.routing;
import WayofTime.bloodmagic.item.routing.IItemFilterProvider;
import WayofTime.bloodmagic.routing.DefaultItemFilter;
import WayofTime.bloodmagic.routing.IItemFilter;
import WayofTime.bloodmagic.routing.IOutputItemRoutingNode;
import WayofTime.bloodmagic.util.Utils;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
public class TileOutputRoutingNode extends TileFilteredRoutingNode implements IOutputItemRoutingNode
2016-01-12 12:38:51 -05:00
{
public TileOutputRoutingNode()
{
super(7, "outputNode");
}
@Override
public boolean isOutput(EnumFacing side)
{
return true;
}
@Override
public IItemFilter getOutputFilterForSide(EnumFacing side)
{
TileEntity tile = worldObj.getTileEntity(pos.offset(side));
if (tile != null)
{
IItemHandler handler = Utils.getInventory(tile, side.getOpposite());
if (handler != null)
{
ItemStack filterStack = this.getFilterStack(side);
if (filterStack == null || !(filterStack.getItem() instanceof IItemFilterProvider))
{
IItemFilter filter = new DefaultItemFilter();
filter.initializeFilter(null, tile, handler, true);
return filter;
}
IItemFilterProvider filter = (IItemFilterProvider) filterStack.getItem();
return filter.getOutputItemFilter(filterStack, tile, handler);
}
}
return null;
}
2016-01-12 12:38:51 -05:00
}