From be75325edd603ee9d7a46c12cd9225d0d82f75da Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 11 Nov 2023 20:06:58 -0500 Subject: Optimize Filled Box Rendering --- .../skyblocker/mixin/AfterTranslucentMixin.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java (limited to 'src/main/java/de/hysky/skyblocker/mixin') diff --git a/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java b/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java new file mode 100644 index 00000000..07f5aa75 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java @@ -0,0 +1,31 @@ +package de.hysky.skyblocker.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import com.llamalad7.mixinextras.sugar.Share; +import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; + +import de.hysky.skyblocker.utils.render.RenderHelper; +import dev.cbyrne.betterinject.annotations.Inject; +import net.minecraft.client.render.WorldRenderer; + +/** + * Injects after Fabric's After Translucent world render event + */ +@Mixin(value = WorldRenderer.class, priority = 2000) +public class AfterTranslucentMixin { + + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/ParticleManager;renderParticles(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/render/LightmapTextureManager;Lnet/minecraft/client/render/Camera;F)V")) + private void onRenderParticles(@Share("renderedParticles") LocalBooleanRef renderedParticles) { + renderedParticles.set(true); + } + + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;push()V")) + private void beforeClouds(@Share("renderedParticles") LocalBooleanRef renderedParticles) { + if (renderedParticles.get()) { + renderedParticles.set(false); + RenderHelper.drawGlobalObjectsAfterTranslucent(); + } + } +} -- cgit