60 lines
1.3 KiB
Java
60 lines
1.3 KiB
Java
|
package net.minecraftforge.liquids;
|
||
|
|
||
|
import net.minecraft.src.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();
|
||
|
|
||
|
}
|