1. 方块形式存在的流体
因为是以方块形式存在的流体,所以这首先是方块。可以直接使用 BlockFluidClassic
这个类,它尽可能还原了原版两种流体方块(水和熔岩)的行为。可以直接 new BlockFluidClassic(...)
,也可以先继承:
// WIP
import net.minecraftforge.fluids.BlockFluidClassic;
public class MyFluidBlock extends BlockFluidClassic {
}
当然你要自己写也可以,因为 Fluid
只持有一个 Block
字段,所以只要是个方块就可以了。
除了 BlockFluidClassic
,还有两个类可以用:
BlockFluidBase
,一个抽象类。直接继承这个类会省下不少代码。BlockFluidFinite
1.1. IFluidBlock
如果你需要更为精密或者别的自定义逻辑,你可以考虑在实现流体方块的时候让它实现 IFluidBlock
。IFluidBlock
代表了一套自定义的流体交互逻辑,实现它之后你可以精确控制其他 Mod 的泵等方块在与之打交道时的行为。比方说,你可以用这个接口让你的流体方块不再是代表 1000 mB 流体,而是 2000 mB 或者 500 mB。