77import com .google .common .collect .ImmutableList ;
88import com .mojang .blaze3d .vertex .BufferBuilder ;
99import com .mojang .blaze3d .vertex .ByteBufferBuilder ;
10- import com .mojang .blaze3d .vertex .DefaultVertexFormat ;
11- import com .mojang .blaze3d .vertex .VertexFormat ;
1210
1311import dev .engine_room .flywheel .api .material .Material ;
1412import dev .engine_room .flywheel .api .model .Mesh ;
1513import dev .engine_room .flywheel .api .model .Model ;
14+ import net .minecraft .client .renderer .RenderType ;
1615
1716class MeshEmitter {
1817 private static final int INITIAL_CAPACITY = 1 ;
1918
2019 private final ByteBufferBuilderStack byteBufferBuilderStack ;
20+ private final RenderType renderType ;
2121
2222 private Material @ UnknownNullability [] materials = new Material [INITIAL_CAPACITY ];
2323 private BufferBuilder @ UnknownNullability [] bufferBuilders = new BufferBuilder [INITIAL_CAPACITY ];
@@ -30,8 +30,9 @@ class MeshEmitter {
3030
3131 private int currentIndex = 0 ;
3232
33- MeshEmitter (ByteBufferBuilderStack byteBufferBuilderStack ) {
33+ MeshEmitter (ByteBufferBuilderStack byteBufferBuilderStack , RenderType renderType ) {
3434 this .byteBufferBuilderStack = byteBufferBuilderStack ;
35+ this .renderType = renderType ;
3536 }
3637
3738 public void prepare (BlockMaterialFunction blockMaterialFunction ) {
@@ -88,8 +89,8 @@ public BufferBuilder getBuffer(Material material) {
8889
8990 ByteBufferBuilder byteBufferBuilder = byteBufferBuilderStack .nextOrCreate ();
9091
91- // This is only used for block models in the 5 chunk render types, so we can hard-code the mode and format .
92- BufferBuilder bufferBuilder = new BufferBuilder (byteBufferBuilder , VertexFormat . Mode . TRIANGLES , DefaultVertexFormat . BLOCK );
92+ // Trust that the RenderType mode/format don't change out from underneath us .
93+ BufferBuilder bufferBuilder = new BufferBuilder (byteBufferBuilder , renderType . mode (), renderType . format () );
9394
9495 // currentIndex == numBufferBuildersPopulated here.
9596 materials [currentIndex ] = material ;
0 commit comments