ForgePatch/common/net/minecraftforge/liquids/IBlockLiquid.java

59 lines
1.5 KiB
Java
Raw Normal View History

package net.minecraftforge.liquids;
2012-12-13 05:58:35 +00:00
import net.minecraft.nbt.NBTTagCompound;
/**
* Implementors of this interface are a liquid which may receive a block implementation and can be placed in the world.
*
* @author cpw
*
*/
public interface IBlockLiquid extends ILiquid {
2013-01-22 02:56:04 +00:00
/**
* Controls the type of block that is generated by this IBlockLiquid
*
*/
public enum BlockType {
/**
* No block. Completeness really.
*/
NONE,
/**
* Vanilla style block, up to 8 flowing states. May be able to generate new sources.
*/
VANILLA,
/**
* Finite liquid style, uses cellular automata to model flowing behaviour.
*/
FINITE;
}
2013-01-22 02:56:04 +00:00
/**
* Can this liquid, when placed in a specific configuration, generate new source blocks of the liquid.
* @return if this liquid will generate new sources
*/
public boolean willGenerateSources();
2013-01-22 02:56:04 +00:00
/**
* @return the distance this liquid will flow if placed in the world. Maximum of 7 levels for vanilla types.
*/
public int getFlowDistance();
2013-01-22 02:56:04 +00:00
/**
* @return the RGB rendering for this liquid
*/
public byte[] getLiquidRGB();
2013-01-22 02:56:04 +00:00
/**
* Get the texture file for rendering the liquid
* @return the texture file for this liquid
*/
public String getLiquidBlockTextureFile();
/**
* Custom properties of the liquid.
* @return a compound tag of custom liquid properties
*/
public NBTTagCompound getLiquidProperties();
}