Interface ILevelExtension

All Known Implementing Classes:
ClientLevel, Level, ServerLevel

public interface ILevelExtension
  • Method Details

    • self

      private Level self()
    • getMaxEntityRadius

      double getMaxEntityRadius()
      The maximum radius to scan for entities when trying to check bounding boxes. Vanilla's default is 2.0D But mods that add larger entities may increase this.
    • increaseMaxEntityRadius

      double increaseMaxEntityRadius(double value)
      Increases the max entity radius, this is safe to call with any value. The setter will verify the input value is larger then the current setting.
      Parameters:
      value - New max radius to set.
      Returns:
      The new max radius
    • getPartEntities

      default Collection<PartEntity<?>> getPartEntities()
      All part entities in this world. Used when collecting entities in an AABB to fix parts being ignored whose parent entity is in a chunk that does not intersect with the AABB.
    • getModelDataManager

      @Nullable default @Nullable ModelDataManager getModelDataManager()
      Retrieves the model data manager for the given level. May be null on a server level.

      For model data retrieval, prefer calling IBlockGetterExtension.getModelData(BlockPos) rather than this method, as it works on more than just a level.

    • getCapability

      @Nullable default <T, C> T getCapability(BlockCapability<T,C> cap, BlockPos pos, C context)
      Retrieve a block capability.

      If the block state and/or the block entity is known, pass them via getCapability(BlockCapability, BlockPos, BlockState, BlockEntity, Object) instead.

    • getCapability

      @Nullable default <T, C> T getCapability(BlockCapability<T,C> cap, BlockPos pos, @Nullable @Nullable BlockState state, @Nullable @Nullable BlockEntity blockEntity, C context)
      Retrieve a block capability.

      Use this override if the block state and/or the block entity is known, otherwise prefer the shorter getCapability(BlockCapability, BlockPos, Object).

      If either the block state or the block entity is unknown, simply pass null. This function will fetch null parameters from the level, with some extra checks to attempt to skip unnecessary fetches.

      Parameters:
      state - the block state, if known, or null if unknown
      blockEntity - the block entity, if known, or null if unknown
    • invalidateCapabilities

      default void invalidateCapabilities(BlockPos pos)
      Notify all listeners that the capabilities at a specific position might have changed. This includes new capabilities becoming available.

      This method will only do something on ServerLevels, but it is safe to call on any Level, without the need for an instanceof check.

      If you already have a block entity at that position, you can call IBlockEntityExtension.invalidateCapabilities() instead.

    • invalidateCapabilities

      default void invalidateCapabilities(ChunkPos pos)
      Notify all listeners that the capabilities at all the positions in a chunk might have changed. This includes new capabilities becoming available.

      This method will only do something on ServerLevels, but it is safe to call on any Level, without the need for an instanceof check.