resonant-induction/archive/java/resonantinduction/old/api/fluid/IDrain.java

45 lines
1.4 KiB
Java
Raw Normal View History

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<Vector3> getFillList();
/** Gets the list of drainable blocks */
public Set<Vector3> getFluidList();
/** Call this after the drain was used to edit a block at the location */
public void onUse(Vector3 vec);
}