33import net .fabricmc .api .EnvType ;
44import net .fabricmc .api .Environment ;
55import net .minecraft .client .MinecraftClient ;
6- import net .minecraft .client .network .AbstractClientPlayerEntity ;
76import net .minecraft .client .render .OverlayTexture ;
87import net .minecraft .client .render .VertexConsumerProvider ;
98import net .minecraft .client .render .entity .feature .FeatureRendererContext ;
10- import net .minecraft .client .render .entity .feature .HeldItemFeatureRenderer ;
9+ import net .minecraft .client .render .entity .feature .PlayerHeldItemFeatureRenderer ;
1110import net .minecraft .client .render .entity .model .PlayerEntityModel ;
12- import net .minecraft .client .render .item . HeldItemRenderer ;
13- import net .minecraft .client .render .model . json . ModelTransformationMode ;
11+ import net .minecraft .client .render .entity . state . PlayerEntityRenderState ;
12+ import net .minecraft .client .render .item . ItemRenderer ;
1413import net .minecraft .client .util .math .MatrixStack ;
15- import net .minecraft .entity .EntityPose ;
16- import net .minecraft .entity .EquipmentSlot ;
17- import net .minecraft .entity .player .PlayerModelPart ;
1814import net .minecraft .item .ItemStack ;
15+ import net .minecraft .item .ModelTransformationMode ;
1916import net .minecraft .item .ShieldItem ;
2017import net .minecraft .util .Arm ;
2118import net .minecraft .util .math .RotationAxis ;
2219
2320@ Environment (EnvType .CLIENT )
24- public class BackToolFeatureRenderer <T extends AbstractClientPlayerEntity , M extends PlayerEntityModel <T >> extends HeldItemFeatureRenderer <T , M > {
25-
21+ public class BackToolFeatureRenderer <M extends PlayerEntityModel > extends PlayerHeldItemFeatureRenderer <PlayerEntityRenderState , M > {
2622 public ItemStack mainStack = ItemStack .EMPTY ;
2723 public ItemStack offStack = ItemStack .EMPTY ;
2824 public Arm mainArm = Arm .RIGHT ;
2925
30- public BackToolFeatureRenderer (FeatureRendererContext <T , M > context , HeldItemRenderer heldItemRenderer ) {
26+ public BackToolFeatureRenderer (FeatureRendererContext <PlayerEntityRenderState , M > context , ItemRenderer heldItemRenderer ) {
3127 super (context , heldItemRenderer );
3228 }
3329
34-
3530 @ Override
36- public void render (MatrixStack matrixStack , VertexConsumerProvider vertexConsumerProvider , int i , T player , float f , float g , float h , float j , float k , float l ) {
31+ public void render (MatrixStack matrixStack , VertexConsumerProvider vertexConsumerProvider , int light , PlayerEntityRenderState playerRenderState , float limbAngle , float limbDistance ) {
32+ if (!(playerRenderState .capeVisible && playerRenderState .skinTextures .capeTexture () != null && !ConfigHandler .isRenderWithCapesTrue ()) &&
33+ !playerRenderState .invisible && playerRenderState .sleepingDirection == null &&
34+ ClientSetup .HELD_TOOLS .containsKey (playerRenderState .name )) {
3735
38- if (!(player .isPartVisible (PlayerModelPart .CAPE ) && player .getSkinTextures ().capeTexture () != null ) && !player .isInvisible () && !player .isSleeping () && ClientSetup .HELD_TOOLS .containsKey (player )) {
39- final HeldItemContext ctx = ClientSetup .HELD_TOOLS .get (player );
36+ final HeldItemContext ctx = ClientSetup .HELD_TOOLS .get (playerRenderState .name );
4037
4138 if (ctx .droppedEntity != null ) {
4239 return ;
4340 }
44- this .setRenders (ctx .previousMain , ctx .previousOff , player . getMainArm () );
41+ this .setRenders (ctx .previousMain , ctx .previousOff , playerRenderState . mainArm );
4542 matrixStack .push ();
4643 this .getContextModel ().body .rotate (matrixStack );
47- boolean bl = ConfigHandler .isHelicopterModeOn () && (player . getPose (). equals ( EntityPose . SWIMMING ) || player . isFallFlying () );
48- this .renderItem (!player . getEquippedStack ( EquipmentSlot . CHEST ). isEmpty () ? 1.0F : player . isPartVisible ( PlayerModelPart . JACKET ) ? 0.5F : 0F ,
49- matrixStack , vertexConsumerProvider , i , bl ? player .age : 0 , h );
44+ boolean isHelicopterMode = ConfigHandler .isHelicopterModeOn () && (playerRenderState . isSwimming || playerRenderState . isGliding );
45+ this .renderItem (!playerRenderState . equippedChestStack . isEmpty () ? 1.0F : playerRenderState . jacketVisible ? 0.5F : 0F ,
46+ matrixStack , vertexConsumerProvider , light , isHelicopterMode ? playerRenderState .age : 0 );
5047 matrixStack .pop ();
5148 }
5249 }
5350
54- private void renderItem (float offset , MatrixStack matrices , VertexConsumerProvider provider , int light , final int ticks , final float partialTicks ) {
51+ private void renderItem (float offset , MatrixStack matrices , VertexConsumerProvider provider , int light , final float age ) {
5552 matrices .translate (0F , 4F / 16F , 1.91F / 16F + (offset / 16F ));
5653 matrices .translate (0F , 0F , 0.025F );
5754
@@ -95,8 +92,8 @@ private void renderItem(float offset, MatrixStack matrices, VertexConsumerProvid
9592 matrices .translate (config .getX (), config .getY (), -config .getZ ());
9693 }
9794
98- if (ticks > 0 ) {
99- matrices .multiply (RotationAxis .POSITIVE_Z .rotationDegrees (( ticks + partialTicks ) * 40F ));
95+ if (age > 0 ) {
96+ matrices .multiply (RotationAxis .POSITIVE_Z .rotationDegrees (age * 40F ));
10097 }
10198 MinecraftClient .getInstance ().getItemRenderer ().renderItem (this .mainStack , ModelTransformationMode .FIXED , light , OverlayTexture .DEFAULT_UV , matrices , provider , null , 0 );
10299 }
@@ -122,8 +119,8 @@ private void renderItem(float offset, MatrixStack matrices, VertexConsumerProvid
122119 matrices .multiply (RotationAxis .POSITIVE_Z .rotationDegrees (config .getZ ()));
123120 }
124121
125- if (ticks > 0 ) {
126- matrices .multiply (RotationAxis .POSITIVE_Z .rotationDegrees (( ticks + partialTicks ) * 40F ));
122+ if (age > 0 ) {
123+ matrices .multiply (RotationAxis .POSITIVE_Z .rotationDegrees (age * 40F ));
127124 }
128125 MinecraftClient .getInstance ().getItemRenderer ().renderItem (this .offStack , ModelTransformationMode .FIXED , light , OverlayTexture .DEFAULT_UV , matrices , provider , null , 0 );
129126 }
0 commit comments