Interface IFluidBlock


public interface IFluidBlock
Implement this interface on Block classes which represent world-placeable Fluids. NOTE: Using/extending the reference implementations BlockFluidBase is encouraged.
  • Method Details

    • getFluid

      Fluid getFluid()
      Returns the Fluid associated with this Block.
    • place

      int place(World world, BlockPos pos, @Nonnull FluidStack fluidStack, IFluidHandler.FluidAction action)
      Attempts to place the block at a given position. The placed block's level will correspond to the provided fluid amount. This method should be called by fluid containers such as buckets, but it is recommended to use FluidUtil.
      Parameters:
      world - the world to place the block in
      pos - the position to place the block at
      fluidStack - the fluid stack to get the required data from
      action - If SIMULATE, the placement will only be simulated
      Returns:
      the amount of fluid extracted from the provided stack to achieve some fluid level
    • drain

      @Nonnull FluidStack drain(World world, BlockPos pos, IFluidHandler.FluidAction action)
      Attempt to drain the block. This method should be called by devices such as pumps. NOTE: The block is intended to handle its own state changes.
      Parameters:
      action - If SIMULATE, the drain will only be simulated.
      Returns:
    • canDrain

      boolean canDrain(World world, BlockPos pos)
      Check to see if a block can be drained. This method should be called by devices such as pumps.
      Returns:
    • getFilledPercentage

      float getFilledPercentage(World world, BlockPos pos)
      Returns the amount of a single block is filled. Value between 0 and 1. 1 meaning the entire 1x1x1 cube is full, 0 meaning completely empty. If the return value is negative. It will be treated as filling the block from the top down instead of bottom up.
      Returns: