public static Fluid getFluid(EntityItem item, boolean below) { double d0 = item.posY + (double) item.getEyeHeight(); int i = MathHelper.floor_double(item.posX); int j = MathHelper.floor_float((float) MathHelper.floor_double(d0)); if (below) j--; int k = MathHelper.floor_double(item.posZ); Block block = item.worldObj.getBlock(i, j, k); Fluid fluid = FluidRegistry.lookupFluidForBlock(block); if (fluid == null && block instanceof IFluidBlock) fluid = ((IFluidBlock) block).getFluid(); else if (block instanceof BlockLiquid) fluid = FluidRegistry.WATER; if (below) return fluid; double filled = 1.0f; // If it's not a liquid assume it's a solid block if (block instanceof IFluidBlock) { filled = ((IFluidBlock) block).getFilledPercentage(item.worldObj, i, j, k); } if (filled < 0) { filled *= -1; // filled -= 0.11111111F; //Why this is needed.. not sure... if (d0 > (double) (j + (1 - filled))) return fluid; } else { if (d0 < (double) (j + filled)) return fluid; } return null; }
public static Fluid getFluidTypeOfBlock(Block block) { Fluid fluid = FluidRegistry.lookupFluidForBlock(block); if (fluid != null) return fluid; else if (isBlockMaterialWater(block)) return FluidRegistry.WATER; else if (isBlockMaterialLava(block)) return FluidRegistry.LAVA; return null; }