package mekanism.common.base;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.FluidTankProperties;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.IFluidTankProperties;
public class FluidHandlerWrapper implements IFluidHandler
{
public IFluidHandlerWrapper wrapper;
public EnumFacing side;
public FluidHandlerWrapper(IFluidHandlerWrapper w, EnumFacing s)
{
wrapper = w;
side = s;
}
@Override
public IFluidTankProperties[] getTankProperties()
{
return wrapper.getTankInfo(side) != null ? FluidTankProperties.convert(wrapper.getTankInfo(side))
: new IFluidTankProperties[]{};
}
@Override
public int fill(FluidStack resource, boolean doFill)
{
if(wrapper.canFill(side, resource != null ? resource.getFluid() : null))
{
return wrapper.fill(side, resource, doFill);
}
return 0;
}
@Override
public FluidStack drain(FluidStack resource, boolean doDrain)
{
if(wrapper.canDrain(side, resource != null ? resource.getFluid() : null))
{
return wrapper.drain(side, resource, doDrain);
}
return null;
}
@Override
public FluidStack drain(int maxDrain, boolean doDrain)
{
if(wrapper.canDrain(side, null))
{
return wrapper.drain(side, maxDrain, doDrain);
}
return null;
}
}