Interface ILevelExtension
- All Known Implementing Classes:
ClientLevel
,Level
,ServerLevel
-
Method Summary
Modifier and TypeMethodDescriptiondefault <T,
C> T getCapability
(BlockCapability<T, C> cap, BlockPos pos, C context) Retrieve a block capability.default <T,
C> T getCapability
(BlockCapability<T, C> cap, BlockPos pos, @Nullable BlockState state, @Nullable BlockEntity blockEntity, C context) Retrieve a block capability.double
The maximum radius to scan for entities when trying to check bounding boxes.default @Nullable ModelDataManager
Retrieves the model data manager for the given level.default Collection
<PartEntity<?>> All part entities in this world.double
increaseMaxEntityRadius
(double value) Increases the max entity radius, this is safe to call with any value.default void
Notify all listeners that the capabilities at a specific position might have changed.default void
Notify all listeners that the capabilities at all the positions in a chunk might have changed.private Level
self()
-
Method Details
-
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
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
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
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 fetchnull
parameters from the level, with some extra checks to attempt to skip unnecessary fetches.- Parameters:
state
- the block state, if known, ornull
if unknownblockEntity
- the block entity, if known, ornull
if unknown
-
invalidateCapabilities
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
ServerLevel
s, but it is safe to call on anyLevel
, without the need for aninstanceof
check.If you already have a block entity at that position, you can call
IBlockEntityExtension.invalidateCapabilities()
instead. -
invalidateCapabilities
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
ServerLevel
s, but it is safe to call on anyLevel
, without the need for aninstanceof
check.
-