Interface IFluidBlock


public interface IFluidBlock
Implement this interface on Block classes which represent world-placeable Fluids.
  • Method Details

    • getFluid

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

      int place(Level level, BlockPos pos, @NotNull @NotNull 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:
      level - the level 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

      @NotNull @NotNull FluidStack drain(Level level, 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:
      the fluid stack after draining the block
    • canDrain

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

      float getFilledPercentage(Level level, 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.