99import net .minecraft .client .MinecraftClient ;
1010import net .minecraft .client .model .ModelPart ;
1111import net .minecraft .client .render .OverlayTexture ;
12- import net .minecraft .client .render .RenderLayer ;
13- import net .minecraft .client .render .VertexConsumer ;
12+ import net .minecraft .client .render .TexturedRenderLayers ;
1413import net .minecraft .client .render .VertexConsumerProvider ;
1514import net .minecraft .client .render .block .BlockModelRenderer ;
1615import net .minecraft .client .render .entity .EntityRenderer ;
1716import net .minecraft .client .render .entity .EntityRendererFactory ;
1817import net .minecraft .client .render .entity .model .BipedEntityModel ;
1918import net .minecraft .client .render .item .ItemRenderer ;
2019import net .minecraft .client .render .model .BakedModelManager ;
21- import net .minecraft .client .texture .SpriteAtlasTexture ;
2220import net .minecraft .client .util .math .MatrixStack ;
2321import net .minecraft .item .ItemStack ;
2422import net .minecraft .registry .DynamicRegistryManager ;
2523import net .minecraft .registry .RegistryKey ;
2624import net .minecraft .registry .entry .RegistryEntry ;
27- import net .minecraft .util .Identifier ;
2825
2926import java .util .Optional ;
3027
@@ -42,7 +39,7 @@ public ConeEntityRenderer(EntityRendererFactory.Context context) {
4239 public void render (ConeEntityRenderState state , MatrixStack matrices , VertexConsumerProvider vertexConsumers , int light ) {
4340 matrices .push ();
4441 matrices .translate (-0.5f , 0 , -0.5f );
45- renderCone (modelManager , state .variant , matrices , vertexConsumers , light , VertexConsumerFactory . ENTITY );
42+ renderCone (modelManager , state .variant , matrices , vertexConsumers , light , false );
4643 matrices .pop ();
4744 super .render (state , matrices , vertexConsumers , light );
4845 }
@@ -58,10 +55,10 @@ public void updateRenderState(ConeEntity entity, ConeEntityRenderState state, fl
5855 state .variant = getEffectiveVariant (entity .getRegistryManager (), entity .getVariant ()).orElse (ConeVariant .Keys .ORANGE );
5956 }
6057
61- private static void renderCone (BakedModelManager modelManager , RegistryKey <ConeVariant > variant , MatrixStack matrices , VertexConsumerProvider vertexConsumers , int light , VertexConsumerFactory vertexConsumerFactory ) {
58+ private static void renderCone (BakedModelManager modelManager , RegistryKey <ConeVariant > variant , MatrixStack matrices , VertexConsumerProvider vertexConsumers , int light , boolean glint ) {
6259 var model = ModelBridge .get ().getModel (modelManager , CustomModelKeys .CONES .getEager (variant ));
6360 var matrix = matrices .peek ();
64- var vertexConsumer = vertexConsumerFactory . createVertexConsumer (vertexConsumers , SpriteAtlasTexture . BLOCK_ATLAS_TEXTURE );
61+ var vertexConsumer = ItemRenderer . getItemGlintConsumer (vertexConsumers , TexturedRenderLayers . getEntitySolid (), false , glint );
6562 BlockModelRenderer .render (matrix , vertexConsumer , model , 1 , 1 , 1 , light , OverlayTexture .DEFAULT_UV );
6663 }
6764
@@ -71,15 +68,15 @@ public static void renderOnHead(MatrixStack matrices, VertexConsumerProvider ver
7168 var registryManager = client .world .getRegistryManager ();
7269 var variant = getEffectiveVariant (registryManager , stack ).orElse (ConeVariant .Keys .ORANGE );
7370
74- var vertexConsumerFactory = stack .hasGlint () ? VertexConsumerFactory .ARMOR_WITH_GLINT : VertexConsumerFactory .ARMOR_WITHOUT_GLINT ;
7571 var modelManager = client .getBakedModelManager ();
7672 matrices .push ();
7773 contextModel .getRootPart ().applyTransform (matrices );
7874 contextModel .getHead ().applyTransform (matrices );
7975 float headSize = getHeadHeight (matrices , contextModel );
80- matrices .translate (SIZE * 0.5f , -headSize , SIZE * 0.5f );
81- matrices .scale (-SIZE , -SIZE , -SIZE );
82- renderCone (modelManager , variant , matrices , vertexConsumers , light , vertexConsumerFactory );
76+ matrices .scale (-1 , -1 , 1 );
77+ matrices .translate (-SIZE * 0.5f , headSize , -SIZE * 0.5f );
78+ matrices .scale (SIZE , SIZE , SIZE );
79+ renderCone (modelManager , variant , matrices , vertexConsumers , light , stack .hasGlint ());
8380 matrices .pop ();
8481 }
8582
@@ -117,14 +114,4 @@ public void accept(MatrixStack.Entry matrix, String path, int index, ModelPart.C
117114 if (headHeight == 0 ) headHeight = (cuboid .maxY - cuboid .minY ) / 16f ;
118115 }
119116 }
120-
121- @ FunctionalInterface
122- private interface VertexConsumerFactory {
123- VertexConsumerFactory ENTITY = (vertexConsumers , texture ) -> vertexConsumers .getBuffer (RenderLayer .getEntityCutout (texture ));
124- VertexConsumerFactory ARMOR_WITHOUT_GLINT = (vertexConsumers , texture ) -> vertexConsumers .getBuffer (RenderLayer .getArmorCutoutNoCull (texture ));
125- // TODO: Figure out why the glint doesn't render
126- VertexConsumerFactory ARMOR_WITH_GLINT = (vertexConsumers , texture ) -> ItemRenderer .getArmorGlintConsumer (vertexConsumers , RenderLayer .getArmorCutoutNoCull (texture ), true );
127-
128- VertexConsumer createVertexConsumer (VertexConsumerProvider vertexConsumers , Identifier texture );
129- }
130117}
0 commit comments