101 lines
2.4 KiB
Java
101 lines
2.4 KiB
Java
package thaumcraft.api.aspects;
|
|
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
|
|
/**
|
|
* @author Azanor
|
|
* 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
|
|
*/
|
|
public interface IEssentiaTransport {
|
|
/**
|
|
* Is this tile able to connect to other vis users/sources on the specified side?
|
|
* @param face
|
|
* @return
|
|
*/
|
|
public boolean isConnectable(ForgeDirection face);
|
|
|
|
/**
|
|
* Is this side used to input essentia?
|
|
* @param face
|
|
* @return
|
|
*/
|
|
boolean canInputFrom(ForgeDirection face);
|
|
|
|
/**
|
|
* Is this side used to output essentia?
|
|
* @param face
|
|
* @return
|
|
*/
|
|
boolean canOutputTo(ForgeDirection face);
|
|
|
|
/**
|
|
* Sets the amount of suction this block will apply
|
|
* @param suction
|
|
*/
|
|
public void setSuction(Aspect aspect, int amount);
|
|
|
|
/**
|
|
* Returns the type of suction this block is applying.
|
|
* @param loc
|
|
* the location from where the suction is being checked
|
|
* @return
|
|
* a return type of null indicates the suction is untyped and the first thing available will be drawn
|
|
*/
|
|
public Aspect getSuctionType(ForgeDirection face);
|
|
|
|
/**
|
|
* Returns the strength of suction this block is applying.
|
|
* @param loc
|
|
* the location from where the suction is being checked
|
|
* @return
|
|
*/
|
|
public int getSuctionAmount(ForgeDirection face);
|
|
|
|
/**
|
|
* remove the specified amount of essentia from this transport tile
|
|
* @return how much was actually taken
|
|
*/
|
|
public int takeEssentia(Aspect aspect, int amount, ForgeDirection face);
|
|
|
|
/**
|
|
* add the specified amount of essentia to this transport tile
|
|
* @return how much was actually added
|
|
*/
|
|
public int addEssentia(Aspect aspect, int amount, ForgeDirection face);
|
|
|
|
/**
|
|
* What type of essentia this contains
|
|
* @param face
|
|
* @return
|
|
*/
|
|
public Aspect getEssentiaType(ForgeDirection face);
|
|
|
|
/**
|
|
* How much essentia this block contains
|
|
* @param face
|
|
* @return
|
|
*/
|
|
public int getEssentiaAmount(ForgeDirection face);
|
|
|
|
|
|
|
|
/**
|
|
* Essentia will not be drawn from this container unless the suction exceeds this amount.
|
|
* @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
|
|
* @return
|
|
*/
|
|
boolean renderExtendedTube();
|
|
|
|
|
|
|
|
}
|
|
|