package openmods.liquids;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.IFluidTank;
import openmods.sync.SyncableFlags;
import openmods.utils.bitmap.IReadableBitMap;
public class SidedFluidHandler extends GenericFluidHandler {
public static class Source extends GenericFluidHandler.Source {
private final IReadableBitMap<ForgeDirection> flags;
public Source(IReadableBitMap<ForgeDirection> flags, IFluidTank tank) {
super(tank);
this.flags = flags;
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid) {
return flags.get(from) && super.canDrain(from, fluid);
}
}
public static class Drain extends GenericFluidHandler.Drain {
private final IReadableBitMap<ForgeDirection> flags;
public Drain(IReadableBitMap<ForgeDirection> flags, IFluidTank tank) {
super(tank);
this.flags = flags;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid) {
return flags.get(from) && super.canFill(from, fluid);
}
}
private final SyncableFlags flags;
public SidedFluidHandler(SyncableFlags flags, IFluidTank tank) {
super(tank);
this.flags = flags;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid) {
return flags.get(from) && super.canFill(from, fluid);
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid) {
return flags.get(from) && super.canDrain(from, fluid);
}
}