package crazypants.util;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.IFluidHandler;
import buildcraft.api.transport.IPipeTile;
import buildcraft.api.transport.IPipeTile.PipeType;
import com.enderio.core.api.common.util.IFluidReceptor;
import com.enderio.core.api.common.util.IItemReceptor;
import com.enderio.core.common.util.FluidUtil;
import com.enderio.core.common.util.ItemUtil;
public class BuildcraftUtil implements IItemReceptor, IFluidReceptor {
static {
//Only register if we can actually load the IPipeTile class
try {
Class.forName("buildcraft.api.transport.IPipeTile");
BuildcraftUtil instance = new BuildcraftUtil();
ItemUtil.receptors.add(instance);
FluidUtil.fluidReceptors.add(instance);
} catch (Exception e) {
}
}
@Override
public int doInsertItem(Object into, ItemStack item, ForgeDirection side) {
if(into instanceof IPipeTile) {
return ((IPipeTile) into).injectItem(item, true, side);
}
return 0;
}
@Override
public boolean canInsertIntoObject(Object into, ForgeDirection side) {
if(into instanceof IPipeTile) {
IPipeTile pipe = (IPipeTile) into;
return pipe.getPipeType() == PipeType.ITEM;
}
return false;
}
@Override
public boolean isValidReceptor(IFluidHandler handler) {
if(handler instanceof IPipeTile) {
IPipeTile pipe = (IPipeTile) handler;
return pipe.getPipeType() == PipeType.FLUID;
}
return true;
}
}