aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/AfterTranslucentMixin.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java19
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) {