Interface FabricBlockModelRenderer
public interface FabricBlockModelRenderer
Note: This interface is automatically implemented on all block model renderers via Mixin and interface injection.
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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) Alternative forBlockModelRenderer.render(MatrixStack.Entry, VertexConsumer, BlockStateModel, float, float, float, int, int)
that accepts aVertexConsumerProvider
instead of aVertexConsumer
.default void
render
(BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) Alternative forBlockModelRenderer.render(BlockRenderView, List, BlockState, BlockPos, MatrixStack, VertexConsumer, boolean, int)
andBlockRenderManager.renderBlock(BlockState, BlockPos, BlockRenderView, MatrixStack, VertexConsumer, boolean, List)
that accepts aBlockStateModel
instead of aList<BlockModelPart>
and aVertexConsumerProvider
instead of aVertexConsumer
.
-
Method Details
-
render
default void render(BlockRenderView blockView, BlockStateModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean cull, long seed, int overlay) Alternative forBlockModelRenderer.render(BlockRenderView, List, BlockState, BlockPos, MatrixStack, VertexConsumer, boolean, int)
andBlockRenderManager.renderBlock(BlockState, BlockPos, BlockRenderView, MatrixStack, VertexConsumer, boolean, List)
that accepts aBlockStateModel
instead of aList<BlockModelPart>
and aVertexConsumerProvider
instead of aVertexConsumer
. Also accepts the random seed. Prefer using this method over the vanilla alternative to correctly retrieve geometry from models that implementinvalid reference
BlockStateModel#emitQuads(QuadEmitter, BlockRenderView, BlockPos, BlockState, Random, Predicate)
This method allows buffering a block model in a terrain-like context, which usually includes stages like culling, dynamic tinting, shading, and flat/smooth lighting.
- Parameters:
blockView
- The world in which to render the model. Should not be empty (i.e. notEmptyBlockRenderView
).model
- The model to render.state
- The block state.pos
- The position of the block in the world.matrices
- The matrix stack.vertexConsumers
- The vertex consumers. TheRenderLayer
passed toVertexConsumerProvider.getBuffer(RenderLayer)
is guaranteed to be one ofRenderLayer.getBlockLayers()
.cull
- Whether to try to cull faces hidden by other blocks.seed
- The random seed. Usually retrieved by the caller fromAbstractBlock.AbstractBlockState.getRenderingSeed(BlockPos)
.overlay
- The overlay value to pass to outputVertexConsumer
s.
-
render
static 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) Alternative forBlockModelRenderer.render(MatrixStack.Entry, VertexConsumer, BlockStateModel, float, float, float, int, int)
that accepts aVertexConsumerProvider
instead of aVertexConsumer
. Also accepts theBlockRenderView
,BlockPos
, andBlockState
to pass toinvalid reference
BlockStateModel#emitQuads(QuadEmitter, BlockRenderView, BlockPos, BlockState, Random, Predicate)
This method allows buffering a block model with minimal transformations to the model geometry. Usually used by entity renderers.
- Parameters:
matrices
- The matrices.vertexConsumers
- The vertex consumers. TheRenderLayer
passed toVertexConsumerProvider.getBuffer(RenderLayer)
is guaranteed to be one ofRenderLayer.getBlockLayers()
.model
- The model to render.red
- The red component of the tint color.green
- The green component of the tint color.blue
- The blue component of the tint color.light
- The minimum light value.overlay
- The overlay value.blockView
- The world in which to render the model. Can be empty (i.e.EmptyBlockRenderView
).pos
- The position of the block in the world. Should beBlockPos.ORIGIN
if the world is empty.state
- The block state. Should beBlocks.AIR.getDefaultState()
if not applicable.
-