RenderAttachedBlockView

public interface RenderAttachedBlockView implements BlockRenderView

BlockView-extending interface to be used by net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel for dynamic model customization. It ensures thread safety and exploits data cached in render chunks for performance and data consistency.

There are differences from BlockView consumers must understand:

BlockEntity implementations that provide data for model customization should implement RenderAttachmentBlockEntity which will be queried on the main thread when a render chunk is enqueued for rebuild. The model should retrieve the results via getBlockEntityRenderAttachment. While getBlockEntity is not disabled, it is not thread-safe for use on render threads. Models that violate this guidance are responsible for any necessary synchronization or collision detection.

getBlockState and getFluidState will always reflect the state cached with the render chunk. Block and fluid states can thus be different from main-thread world state due to lag between block update application from network packets and render chunk rebuilds. Use of {link #getCachedRenderData()} will ensure consistency of model state with the rest of the chunk being rendered.

Models should avoid using getBlockEntity to ensure thread safety because this view may be accessed outside the main client thread. Models that require Block Entity data should implement RenderAttachmentBlockEntity and then use getBlockEntityRenderAttachment to retrieve it. When called from the main thread, that method will simply retrieve the data directly.

This interface is only guaranteed to be present in the client environment.

Functions

countVerticalSections
Link copied to clipboard
int countVerticalSections()
getBaseLightLevel
Link copied to clipboard
int getBaseLightLevel(BlockPos pos, int ambientDarkness)
getBlockEntity
Link copied to clipboard
abstract BlockEntity getBlockEntity(BlockPos pos)
Optional<TgetBlockEntity<T extends BlockEntity>(BlockPos pos, BlockEntityType<T> type)
getBlockEntityRenderAttachment
Link copied to clipboard
@Nullable()
Object getBlockEntityRenderAttachment(BlockPos pos)
For models associated with Block Entities that implement RenderAttachmentBlockEntity this will be the most recent value provided by that implementation for the given block position.
getBlockState
Link copied to clipboard
abstract BlockState getBlockState(BlockPos pos)
getBottomSectionCoord
Link copied to clipboard
int getBottomSectionCoord()
getBottomY
Link copied to clipboard
abstract int getBottomY()
getBrightness
Link copied to clipboard
abstract float getBrightness(Direction direction, boolean shaded)
getColor
Link copied to clipboard
abstract int getColor(BlockPos pos, ColorResolver colorResolver)
getDismountHeight
Link copied to clipboard
double getDismountHeight(VoxelShape blockCollisionShape, Supplier<VoxelShape> belowBlockCollisionShapeGetter)
getFluidState
Link copied to clipboard
abstract FluidState getFluidState(BlockPos pos)
getHeight
Link copied to clipboard
abstract int getHeight()
getLightingProvider
Link copied to clipboard
abstract LightingProvider getLightingProvider()
getLightLevel
Link copied to clipboard
int getLightLevel(LightType type, BlockPos pos)
getLuminance
Link copied to clipboard
int getLuminance(BlockPos pos)
getMaxLightLevel
Link copied to clipboard
int getMaxLightLevel()
getSectionIndex
Link copied to clipboard
int getSectionIndex(int y)
getStatesInBox
Link copied to clipboard
Stream<BlockStategetStatesInBox(Box box)
getTopSectionCoord
Link copied to clipboard
int getTopSectionCoord()
getTopY
Link copied to clipboard
int getTopY()
isOutOfHeightLimit
Link copied to clipboard
boolean isOutOfHeightLimit(BlockPos pos)
isSkyVisible
Link copied to clipboard
boolean isSkyVisible(BlockPos pos)
raycast
Link copied to clipboard
BlockHitResult raycast(BlockStateRaycastContext context)
static T raycast<T, C>(Vec3d start, Vec3d end, C context, BiFunction<C, BlockPos, T> blockHitFactory, Function<C, T> missFactory)
raycastBlock
Link copied to clipboard
BlockHitResult raycastBlock(Vec3d start, Vec3d end, BlockPos pos, VoxelShape shape, BlockState state)
sectionCoordToIndex
Link copied to clipboard
int sectionCoordToIndex(int coord)
sectionIndexToCoord
Link copied to clipboard
int sectionIndexToCoord(int index)

Inheritors

MixinChunkRendererRegion
Link copied to clipboard
MixinViewableWorld
Link copied to clipboard

Sources

jvm source
Link copied to clipboard