diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:06:58 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:06:58 -0500 |
commit | be75325edd603ee9d7a46c12cd9225d0d82f75da (patch) | |
tree | 6d5217d72d1087859d67e1501c0d86918201fb08 /src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java | |
parent | 7a94d9380acb69006340e53db12faad8f13ab828 (diff) | |
download | Skyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.tar.gz Skyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.tar.bz2 Skyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.zip |
Optimize Filled Box Rendering
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java | 31 |
1 files changed, 31 insertions, 0 deletions
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(); + } + } +} |