Interface Renderer
Renderers must ensure that terrain buffering supports FabricBlockStateModel.emitQuads(QuadEmitter, BlockAndTintGetter, BlockPos, BlockState, RandomSource, Predicate), which happens in
SectionCompiler in vanilla; this code is not patched automatically. Renderers must also ensure that the
following vanilla methods support FabricBlockStateModel.emitQuads(QuadEmitter, BlockAndTintGetter, BlockPos, BlockState, RandomSource, Predicate); these methods are not patched automatically.
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
FabricModelBlockRenderer or FabricBlockRenderDispatcher.
-
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 pose, BlockMultiBufferSource bufferSource, net.minecraft.client.renderer.block.model.BlockStateModel model, float red, float green, float blue, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) voidrender(net.minecraft.client.renderer.block.ModelBlockRenderer blockRenderer, net.minecraft.world.level.BlockAndTintGetter level, 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 poseStack, BlockMultiBufferSource bufferSource, boolean cull, long seed, int overlay) voidrenderBlockAsEntity(net.minecraft.client.renderer.block.BlockRenderDispatcher renderDispatcher, net.minecraft.world.level.block.state.BlockState state, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter level, net.minecraft.core.BlockPos pos) voidsetLayerRenderTypeGetter(net.minecraft.client.renderer.item.ItemStackRenderState.LayerRenderState layer, ItemRenderTypeGetter renderTypeGetter)
-
Method Details
-
get
-
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 blockRenderer, net.minecraft.world.level.BlockAndTintGetter level, 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 poseStack, BlockMultiBufferSource bufferSource, boolean cull, long seed, int overlay) - See Also:
-
render
@OverrideOnly void render(com.mojang.blaze3d.vertex.PoseStack.Pose pose, BlockMultiBufferSource bufferSource, net.minecraft.client.renderer.block.model.BlockStateModel model, float red, float green, float blue, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter level, 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 renderDispatcher, net.minecraft.world.level.block.state.BlockState state, com.mojang.blaze3d.vertex.PoseStack poseStack, net.minecraft.client.renderer.MultiBufferSource bufferSource, int light, int overlay, net.minecraft.world.level.BlockAndTintGetter level, 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:
-