package resonantinduction.old.api.fluid; import java.util.Set; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.tile.IRotatable; /** * Interface to make or use the TileEntityDrain. This is mostly a dummy interface to help the * construction pump use the TileEntity as the center of drain location * * The use of ITankContainer is optional but is need for the drain to be added to a Fluid Network * Same goes for IRotatable but make sure to return direction as the direction the drain faces */ public interface IDrain extends IFluidHandler, IRotatable { /** * Can the pump drain in the area in the given direction * * @param direction - not the side of the block but rather the direction the block is facing * @return true if it can */ public boolean canDrain(ForgeDirection direction); /** * Can the pump fill in the area in the given direction * * @param direction - not the side of the block but rather the direction the block is facing * @return true if it can */ public boolean canFill(ForgeDirection direction); /** Gets the list of fillable blocks */ public Set getFillList(); /** Gets the list of drainable blocks */ public Set getFluidList(); /** Call this after the drain was used to edit a block at the location */ public void onUse(Vector3 vec); }