2626import meteordevelopment .meteorclient .systems .modules .world .HighwayBuilder ;
2727import meteordevelopment .meteorclient .utils .Utils ;
2828import meteordevelopment .meteorclient .utils .entity .fakeplayer .FakePlayerEntity ;
29+ import meteordevelopment .meteorclient .utils .render .CustomBannerGuiElementRenderer ;
2930import meteordevelopment .meteorclient .utils .render .NametagUtils ;
3031import meteordevelopment .meteorclient .utils .render .RenderUtils ;
3132import net .minecraft .client .MinecraftClient ;
3233import net .minecraft .client .gui .DrawContext ;
34+ import net .minecraft .client .gui .render .GuiRenderer ;
35+ import net .minecraft .client .gui .render .SpecialGuiElementRenderer ;
36+ import net .minecraft .client .gui .render .state .GuiRenderState ;
37+ import net .minecraft .client .render .BufferBuilderStorage ;
3338import net .minecraft .client .render .Camera ;
3439import net .minecraft .client .render .GameRenderer ;
3540import net .minecraft .client .render .RenderTickCounter ;
4853import org .spongepowered .asm .mixin .Unique ;
4954import org .spongepowered .asm .mixin .injection .At ;
5055import org .spongepowered .asm .mixin .injection .Inject ;
56+ import org .spongepowered .asm .mixin .injection .ModifyArg ;
5157import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
5258
59+ import java .util .ArrayList ;
60+ import java .util .List ;
61+
5362@ Mixin (GameRenderer .class )
5463public abstract class GameRendererMixin {
5564 @ Shadow
@@ -85,14 +94,6 @@ public abstract class GameRendererMixin {
8594 @ Final
8695 private BufferBuilderStorage buffers ;
8796
88- @ ModifyArg (method = "<init>" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/gui/render/GuiRenderer;<init>(Lnet/minecraft/client/gui/render/state/GuiRenderState;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/command/RenderDispatcher;Ljava/util/List;)V" ))
89- private List <SpecialGuiElementRenderer <?>> meteor$addSpecialRenderers (List <SpecialGuiElementRenderer <?>> list ) {
90- list = new ArrayList <>(list );
91- list .add (new CustomBannerGuiElementRenderer (buffers .getEntityVertexConsumers (), client .getAtlasManager ()));
92-
93- return List .of (list .toArray (new SpecialGuiElementRenderer <?>[0 ]));
94- }
95-
9697 @ Shadow
9798 @ Final
9899 private GuiRenderer guiRenderer ;
@@ -105,6 +106,14 @@ public abstract class GameRendererMixin {
105106 @ Final
106107 private GuiRenderState guiState ;
107108
109+ @ ModifyArg (method = "<init>" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/gui/render/GuiRenderer;<init>(Lnet/minecraft/client/gui/render/state/GuiRenderState;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/command/RenderDispatcher;Ljava/util/List;)V" ))
110+ private List <SpecialGuiElementRenderer <?>> meteor$addSpecialRenderers (List <SpecialGuiElementRenderer <?>> list ) {
111+ list = new ArrayList <>(list );
112+ list .add (new CustomBannerGuiElementRenderer (buffers .getEntityVertexConsumers (), client .getAtlasManager ()));
113+
114+ return List .of (list .toArray (new SpecialGuiElementRenderer <?>[0 ]));
115+ }
116+
108117 @ Inject (method = "renderWorld" , at = @ At (value = "INVOKE_STRING" , target = "Lnet/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V" , args = {"ldc=hand" }))
109118 private void onRenderWorld (RenderTickCounter tickCounter , CallbackInfo ci , @ Local (ordinal = 0 ) Matrix4f projection , @ Local (ordinal = 1 ) Matrix4f position , @ Local (ordinal = 1 ) float tickDelta , @ Local MatrixStack matrixStack ) {
110119 if (!Utils .canUpdate ()) return ;
0 commit comments