diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 21:30:57 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 21:30:57 -0500 |
commit | 56708738729b39392b5c60c1ba96d8e986d9457b (patch) | |
tree | 38f44db2d28741cbba7bdfb83901a55cfbed9760 | |
parent | 82dabc1f9f53ebe135096fb212f10ba9f5ff679b (diff) | |
download | Skyblocker-56708738729b39392b5c60c1ba96d8e986d9457b.tar.gz Skyblocker-56708738729b39392b5c60c1ba96d8e986d9457b.tar.bz2 Skyblocker-56708738729b39392b5c60c1ba96d8e986d9457b.zip |
Batch Beacon Beams + Fix drawing from an incorrect buffer
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java | 6 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java | 19 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java b/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java index 07f5aa75..99ba30e1 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.mixin; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import com.llamalad7.mixinextras.sugar.Share; @@ -8,6 +9,7 @@ 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.BufferBuilderStorage; import net.minecraft.client.render.WorldRenderer; /** @@ -15,6 +17,8 @@ import net.minecraft.client.render.WorldRenderer; */ @Mixin(value = WorldRenderer.class, priority = 2000) public class AfterTranslucentMixin { + @Shadow + private BufferBuilderStorage bufferBuilders; @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) { @@ -25,7 +29,7 @@ public class AfterTranslucentMixin { private void beforeClouds(@Share("renderedParticles") LocalBooleanRef renderedParticles) { if (renderedParticles.get()) { renderedParticles.set(false); - RenderHelper.drawGlobalObjectsAfterTranslucent(); + RenderHelper.drawGlobalObjectsAfterAfterTranslucent(bufferBuilders.getEntityVertexConsumers()); } } } diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index 020252e7..1058d94c 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -12,6 +12,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.render.*; import net.minecraft.client.render.VertexFormat.DrawMode; +import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundEvents; import net.minecraft.text.OrderedText; @@ -76,13 +77,8 @@ public class RenderHelper { matrices.push(); matrices.translate(pos.getX() - camera.getX(), pos.getY() - camera.getY(), pos.getZ() - camera.getZ()); - Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); - VertexConsumerProvider.Immediate consumer = VertexConsumerProvider.immediate(buffer); + BeaconBlockEntityRendererInvoker.renderBeam(matrices, context.consumers(), context.tickDelta(), context.world().getTime(), 0, MAX_OVERWORLD_BUILD_HEIGHT, colorComponents); - BeaconBlockEntityRendererInvoker.renderBeam(matrices, consumer, context.tickDelta(), context.world().getTime(), 0, MAX_OVERWORLD_BUILD_HEIGHT, colorComponents); - - consumer.draw(); matrices.pop(); } } @@ -251,13 +247,14 @@ public class RenderHelper { matrices.pop(); } - public static void drawGlobalObjectsAfterTranslucent() { - Tessellator tessellator = RenderSystem.renderThreadTesselator(); - BufferBuilder buffer = tessellator.getBuffer(); - VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(buffer); - + public static void drawGlobalObjectsAfterAfterTranslucent(VertexConsumerProvider.Immediate immediate) { + //Filled Blocks immediate.draw(SRenderLayers.getFilled()); immediate.draw(SRenderLayers.getFilledThroughWalls()); + + //Beacon Beams + immediate.draw(RenderLayer.getBeaconBeam(BeaconBlockEntityRenderer.BEAM_TEXTURE, false)); + immediate.draw(RenderLayer.getBeaconBeam(BeaconBlockEntityRenderer.BEAM_TEXTURE, true)); } public static void runOnRenderThread(Runnable runnable) { |