Esempio n. 1
0
  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;
  }
Esempio n. 2
0
  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;
  }