package net.minecraftforge.liquids; 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 { /** * Controls the type of block that is generated by this IBlockLiquid * @author cpw * */ 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; } /** * Can this liquid, when placed in a specific configuration, generate new source blocks of the liquid. * @return */ public boolean willGenerateSources(); /** * @return the distance this liquid will flow if placed in the world. Maximum of 7 levels for vanilla types. */ public int getFlowDistance(); /** * @return the RGB rendering for this liquid */ public byte[] getLiquidRGB(); /** * Get the texture file for rendering the liquid * @return */ public String getLiquidBlockTextureFile(); /** * Custom properties of the liquid. * @return */ public NBTTagCompound getLiquidProperties(); }