Interface Renderer
Renderers must ensure that terrain buffering supports
invalid reference
BlockStateModel#emitQuadsSectionCompiler in vanilla; this code is not patched automatically. Renderers must also ensure that the
following vanilla methods support
invalid reference
BlockStateModel#emitQuads
ModelBlockRenderer.renderModel(PoseStack.Pose, VertexConsumer, BlockStateModel, float, float, float, int, int)BlockRenderDispatcher.renderBreakingTexture(BlockState, BlockPos, BlockAndTintGetter, PoseStack, VertexConsumer)BlockRenderDispatcher.renderSingleBlock(BlockState, PoseStack, MultiBufferSource, int, int)
All other places in vanilla code that invoke BlockStateModel.collectParts(RandomSource, List),
BlockStateModel.collectParts(RandomSource), or
ModelBlockRenderer.renderModel(PoseStack.Pose, VertexConsumer, BlockStateModel, float, float, float, int, int)
are, where appropriate, patched automatically to invoke the corresponding method above or the corresponding method in
FabricBlockModelRenderer or FabricBlockRenderManager.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Rendererget()Access to the currentRendererfor creating and retrieving mesh builders and materials.getLayerRenderStateEmitter(net.minecraft.client.renderer.item.ItemStackRenderState.LayerRenderState layer) Obtain a newMutableMeshinstance to build optimized meshes and create baked models with enhanced features.static voidRendering extension mods must implementRendererand call this method during initialization.voidrender(com.mojang.blaze3d.vertex.PoseStack.Pose matrices, BlockVertexConsumerProvider vertexConsumers, net.minecraft.client.renderer.block.model.BlockStateModel model, float red, float green, float blue, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) voidrender(net.minecraft.client.renderer.block.ModelBlockRenderer modelRenderer, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.client.renderer.block.model.BlockStateModel model, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, com.mojang.blaze3d.vertex.PoseStack matrices, BlockVertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) voidrenderBlockAsEntity(net.minecraft.client.renderer.block.BlockRenderDispatcher renderManager, net.minecraft.world.level.block.state.BlockState state, com.mojang.blaze3d.vertex.PoseStack matrices, net.minecraft.client.renderer.MultiBufferSource vertexConsumers, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.core.BlockPos pos) voidsetLayerRenderTypeGetter(net.minecraft.client.renderer.item.ItemStackRenderState.LayerRenderState layer, ItemRenderTypeGetter renderTypeGetter)
-
Method Details
-
get
Access to the currentRendererfor creating and retrieving mesh builders and materials. -
register
-
mutableMesh
MutableMesh mutableMesh()Obtain a newMutableMeshinstance to build optimized meshes and create baked models with enhanced features.Renderer does not retain a reference to returned instances, so they should be re-used when possible to avoid memory allocation overhead.
-
render
@OverrideOnly void render(net.minecraft.client.renderer.block.ModelBlockRenderer modelRenderer, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.client.renderer.block.model.BlockStateModel model, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, com.mojang.blaze3d.vertex.PoseStack matrices, BlockVertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) - See Also:
-
render
@OverrideOnly void render(com.mojang.blaze3d.vertex.PoseStack.Pose matrices, BlockVertexConsumerProvider vertexConsumers, net.minecraft.client.renderer.block.model.BlockStateModel model, float red, float green, float blue, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) - See Also:
-
renderBlockAsEntity
@OverrideOnly void renderBlockAsEntity(net.minecraft.client.renderer.block.BlockRenderDispatcher renderManager, net.minecraft.world.level.block.state.BlockState state, com.mojang.blaze3d.vertex.PoseStack matrices, net.minecraft.client.renderer.MultiBufferSource vertexConsumers, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter blockView, net.minecraft.core.BlockPos pos) - See Also:
-
getLayerRenderStateEmitter
@OverrideOnly QuadEmitter getLayerRenderStateEmitter(net.minecraft.client.renderer.item.ItemStackRenderState.LayerRenderState layer) - See Also:
-
setLayerRenderTypeGetter
@OverrideOnly void setLayerRenderTypeGetter(net.minecraft.client.renderer.item.ItemStackRenderState.LayerRenderState layer, ItemRenderTypeGetter renderTypeGetter) - See Also:
-