2014-01-17 19:12:49 +00:00
|
|
|
package thaumcraft.api.aspects;
|
|
|
|
|
|
|
|
import net.minecraftforge.common.ForgeDirection;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Azanor
|
2014-01-17 21:05:38 +00:00
|
|
|
* This interface is used by tiles that use or transport vis.
|
|
|
|
* Only tiles that implement this interface will be able to connect to vis conduits or other thaumic devices
|
2014-01-17 19:12:49 +00:00
|
|
|
*/
|
2014-01-17 21:43:13 +00:00
|
|
|
public interface IEssentiaTransport
|
|
|
|
{
|
2014-01-17 19:12:49 +00:00
|
|
|
/**
|
|
|
|
* Is this tile able to connect to other vis users/sources on the specified side?
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param face
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public boolean isConnectable(ForgeDirection face);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Is this side used to input essentia?
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param face
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
boolean canInputFrom(ForgeDirection face);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Is this side used to output essentia?
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param face
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
boolean canOutputTo(ForgeDirection face);
|
|
|
|
|
|
|
|
// /**
|
|
|
|
// * Can this tile act as a source of vis?
|
|
|
|
// * @return
|
|
|
|
// */
|
|
|
|
// public boolean isVisSource();
|
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// * Is this tile a conduit that transports vis?
|
|
|
|
// * @return
|
|
|
|
// */
|
|
|
|
// public boolean isVisConduit();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the amount of suction this block will apply
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param suction
|
|
|
|
*/
|
|
|
|
public void setSuction(AspectList suction);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the amount of suction this block will apply
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param suction
|
|
|
|
*/
|
|
|
|
public void setSuction(Aspect aspect, int amount);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the amount of suction this block is applying.
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
|
|
|
* @param loc the location from where the suction is being checked
|
2014-01-17 19:12:49 +00:00
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public AspectList getSuction(ForgeDirection face);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* remove the specified amount of vis from this transport tile
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @param suction
|
|
|
|
* @return how much was actually taken
|
|
|
|
*/
|
|
|
|
public int takeVis(Aspect aspect, int amount);
|
|
|
|
|
|
|
|
public AspectList getEssentia(ForgeDirection face);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Essentia will not be drawn from this container unless the suction exceeds this amount.
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @return the amount
|
|
|
|
*/
|
|
|
|
public int getMinimumSuction();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return true if you want the conduit to extend a little further into the block.
|
|
|
|
* Used by jars and alembics that have smaller than normal hitboxes
|
2014-01-17 21:05:38 +00:00
|
|
|
*
|
2014-01-17 19:12:49 +00:00
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
boolean renderExtendedTube();
|
|
|
|
}
|