Interface Renderer
Renderers must ensure that terrain buffering supports
invalid reference
BlockStateModel#emitQuadsSectionBuilder in vanilla; this code is not patched automatically. Renderers must also ensure that the
following vanilla methods support
invalid reference
BlockStateModel#emitQuads
BlockModelRenderer.render(MatrixStack.Entry, VertexConsumer, BlockStateModel, float, float, float, int, int)BlockRenderManager.renderDamage(BlockState, BlockPos, BlockRenderView, MatrixStack, VertexConsumer)BlockRenderManager.renderBlockAsEntity(BlockState, MatrixStack, VertexConsumerProvider, int, int)
All other places in vanilla code that invoke BlockStateModel.addParts(Random, List),
BlockStateModel.getParts(Random), or
BlockModelRenderer.render(MatrixStack.Entry, 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 TypeMethodDescriptiondefault voidemitBlockModelPartQuads(BlockModelPart modelPart, QuadEmitter emitter, Predicate<@Nullable Direction> cullTest) static Rendererget()Access to the currentRendererfor creating and retrieving mesh builders and materials.@Nullable RenderMaterialReturn a material previously registered viaregisterMaterial(Identifier, RenderMaterial).Obtain a newMaterialFinderinstance to retrieve standardRenderMaterialinstances.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.booleanregisterMaterial(Identifier id, RenderMaterial material) Register a material for re-use by other mods or models within a mod.voidrender(BlockModelRenderer modelRenderer, BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) voidrender(MatrixStack.Entry matrices, VertexConsumerProvider vertexConsumers, BlockStateModel model, float red, float green, float blue, int light, int overlay, BlockRenderView blockView, BlockPos pos, BlockState state) voidrenderBlockAsEntity(BlockRenderManager renderManager, BlockState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BlockRenderView blockView, BlockPos pos)
-
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.
-
materialFinder
MaterialFinder materialFinder()Obtain a newMaterialFinderinstance to retrieve standardRenderMaterialinstances.Renderer does not retain a reference to returned instances, so they should be re-used for multiple materials when possible to avoid memory allocation overhead.
-
materialById
Return a material previously registered viaregisterMaterial(Identifier, RenderMaterial). Will return null if no material was found matching the given identifier. -
registerMaterial
Register a material for re-use by other mods or models within a mod. The registry does not persist registrations - mods must create and register all materials at game initialization.Returns false if a material with the given identifier is already present, leaving the existing material intact.
-
render
@OverrideOnly void render(BlockModelRenderer modelRenderer, BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) - See Also:
-
render
@OverrideOnly void render(MatrixStack.Entry matrices, VertexConsumerProvider vertexConsumers, BlockStateModel model, float red, float green, float blue, int light, int overlay, BlockRenderView blockView, BlockPos pos, BlockState state) - See Also:
-
renderBlockAsEntity
@OverrideOnly void renderBlockAsEntity(BlockRenderManager renderManager, BlockState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BlockRenderView blockView, BlockPos pos) - See Also:
-
emitBlockModelPartQuads
@Experimental @OverrideOnly default void emitBlockModelPartQuads(BlockModelPart modelPart, QuadEmitter emitter, Predicate<@Nullable Direction> cullTest) - See Also:
-
getLayerRenderStateEmitter
- See Also:
-