55
66package meteordevelopment .meteorclient .mixin ;
77
8+ import com .llamalad7 .mixinextras .sugar .Local ;
89import meteordevelopment .meteorclient .systems .modules .Modules ;
910import meteordevelopment .meteorclient .systems .modules .render .NoRender ;
11+ import net .minecraft .client .render .OverlayTexture ;
1012import net .minecraft .client .render .RenderLayer ;
1113import net .minecraft .client .render .block .entity .BannerBlockEntityRenderer ;
1214import net .minecraft .client .render .block .entity .model .BannerBlockModel ;
13- import net .minecraft .client .render .block .entity .model .BannerFlagBlockModel ;
1415import net .minecraft .client .render .block .entity .state .BannerBlockEntityRenderState ;
1516import net .minecraft .client .render .command .ModelCommandRenderer ;
1617import net .minecraft .client .render .command .OrderedRenderCommandQueue ;
1920import net .minecraft .client .texture .SpriteHolder ;
2021import net .minecraft .client .util .SpriteIdentifier ;
2122import net .minecraft .client .util .math .MatrixStack ;
22- import net .minecraft .component .type .BannerPatternsComponent ;
23- import net .minecraft .util .DyeColor ;
2423import net .minecraft .util .Unit ;
2524import net .minecraft .util .math .RotationAxis ;
25+ import org .spongepowered .asm .mixin .Final ;
2626import org .spongepowered .asm .mixin .Mixin ;
27+ import org .spongepowered .asm .mixin .Shadow ;
2728import org .spongepowered .asm .mixin .Unique ;
2829import org .spongepowered .asm .mixin .injection .At ;
2930import org .spongepowered .asm .mixin .injection .Inject ;
3031import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
3132
3233@ Mixin (BannerBlockEntityRenderer .class )
3334public abstract class BannerBlockEntityRendererMixin {
35+ @ Shadow
36+ @ Final
37+ private SpriteHolder materials ;
38+
3439 @ Inject (method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V" , at = @ At ("HEAD" ), cancellable = true )
3540 private void injectRender1 (BannerBlockEntityRenderState bannerBlockEntityRenderState , MatrixStack matrixStack , OrderedRenderCommandQueue orderedRenderCommandQueue , CameraRenderState arg , CallbackInfo ci ) {
3641 if (Modules .get ().get (NoRender .class ).getBannerRenderMode () == NoRender .BannerRenderMode .None ) ci .cancel ();
3742 }
3843
39- @ Inject (method = "render(Lnet/minecraft/client/texture/SpriteHolder ;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel; Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;I )V" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel (Lnet/minecraft/client/model/Model;Ljava/lang/Object; Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet /minecraft/client/texture/Sprite;ILnet /minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V" ), cancellable = true )
40- private static void injectRender2 (SpriteHolder materials , MatrixStack matrices , OrderedRenderCommandQueue queue , int light , int overlay , float yaw , BannerBlockModel model , BannerFlagBlockModel flagModel , float pitch , DyeColor dyeColor , BannerPatternsComponent bannerPatterns , ModelCommandRenderer . CrumblingOverlayCommand crumblingOverlay , int outline , CallbackInfo ci ) {
44+ @ Inject (method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState ;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState; )V" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render (Lnet/minecraft/client/texture/SpriteHolder; Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet /minecraft/client/render/block/entity/model/BannerBlockModel;Lnet /minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/ command/ModelCommandRenderer$CrumblingOverlayCommand;I )V" ), cancellable = true )
45+ private void injectRender2 (BannerBlockEntityRenderState bannerBlockEntityRenderState , MatrixStack matrixStack , OrderedRenderCommandQueue orderedRenderCommandQueue , CameraRenderState cameraRenderState , CallbackInfo ci , @ Local BannerBlockModel bannerBlockModel ) {
4146 if (Modules .get ().get (NoRender .class ).getBannerRenderMode () == NoRender .BannerRenderMode .Pillar ) {
42- renderPillar (matrices , queue , light , overlay , yaw , model , materials , crumblingOverlay );
47+ renderPillar (
48+ matrixStack ,
49+ orderedRenderCommandQueue ,
50+ bannerBlockEntityRenderState .lightmapCoordinates ,
51+ bannerBlockEntityRenderState .yaw ,
52+ bannerBlockModel ,
53+ this .materials ,
54+ bannerBlockEntityRenderState .crumblingOverlay
55+ );
4356 ci .cancel ();
4457 }
4558 }
4659
4760 @ Unique
48- private static void renderPillar (MatrixStack matrices , OrderedRenderCommandQueue entityRenderCommandQueue , int light , int overlay , float rotation , BannerBlockModel model , SpriteHolder spriteHolder , ModelCommandRenderer .CrumblingOverlayCommand arg ) {
61+ private static void renderPillar (MatrixStack matrices , OrderedRenderCommandQueue entityRenderCommandQueue , int light , float rotation , BannerBlockModel model , SpriteHolder spriteHolder , ModelCommandRenderer .CrumblingOverlayCommand arg ) {
4962 matrices .push ();
5063 matrices .translate (0.5F , 0.0F , 0.5F );
5164 matrices .multiply (RotationAxis .POSITIVE_Y .rotationDegrees (rotation ));
@@ -57,7 +70,7 @@ private static void renderPillar(MatrixStack matrices, OrderedRenderCommandQueue
5770 matrices ,
5871 spriteIdentifier .getRenderLayer (RenderLayer ::getEntitySolid ),
5972 light ,
60- overlay ,
73+ OverlayTexture . DEFAULT_UV ,
6174 -1 ,
6275 spriteHolder .getSprite (spriteIdentifier ),
6376 0 ,
0 commit comments