检查块是否是任何液体(我的世界锻造 1.18.1)

check if block is any liquid (minecraft forge 1.18.1)

我有一个为每个块调用的函数。我希望函数 returns 在它是流体时为真(不仅是 Minecraft 流体,也就是其他 mod 流体示例:油)

这是我的代码:

public boolean shouldDestroy(BlockPos pos) {
    Block block = this.getLevel().getBlockState(pos).getBlock();
    boolean isDestructable = block == Blocks.BEDROCK || block == Blocks.AIR;

    // liquids
    boolean isDrainable = false; // set to true if block is a liquid

    return !isDestructable && isDrainable;
}

我搜索过,但没有找到任何可以帮助我的东西

你可以检查方块是否是像这样的流体实例:

boolean isLiquid = block instanceof BlockLiquid || block instance IFluidBlock;

Source

也有可能 block.getMaterial().isLiquid()。这个方法随着时间的推移而改变,有时不存在,我不知道 1.18 的具体情况。