aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-11-11 20:14:46 -0500
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-11-11 20:14:46 -0500
commitc475bbba4cd28f3df65e5147b32e960600e452cb (patch)
tree87da26b559e118900debb6bd9c939aaa48ffbb7a /src/main/java/de
parentbe75325edd603ee9d7a46c12cd9225d0d82f75da (diff)
downloadSkyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.tar.gz
Skyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.tar.bz2
Skyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.zip
Refactor off-thread RenderSystem calls
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java10
2 files changed, 12 insertions, 9 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java b/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java
index fba447ea..bc4f98c2 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java
@@ -1,8 +1,8 @@
package de.hysky.skyblocker.skyblock.special;
-import com.mojang.blaze3d.systems.RenderSystem;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.Utils;
+import de.hysky.skyblocker.utils.render.RenderHelper;
import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.enchantment.Enchantments;
@@ -58,15 +58,10 @@ public class SpecialEffects {
ItemStack stack = getStackFromName(matcher.group("item"));
if (!stack.isEmpty()) {
- if (RenderSystem.isOnRenderThread()) {
+ RenderHelper.runOnRenderThread(() -> {
client.particleManager.addEmitter(client.player, ParticleTypes.PORTAL, 30);
client.gameRenderer.showFloatingItem(stack);
- } else {
- RenderSystem.recordRenderCall(() -> {
- client.particleManager.addEmitter(client.player, ParticleTypes.PORTAL, 30);
- client.gameRenderer.showFloatingItem(stack);
- });
- }
+ });
}
}
}
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 9c6826af..7f3a63a3 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -245,11 +245,19 @@ public class RenderHelper {
Tessellator tessellator = RenderSystem.renderThreadTesselator();
BufferBuilder buffer = tessellator.getBuffer();
VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(buffer);
-
+
immediate.draw(SRenderLayers.getFilled());
immediate.draw(SRenderLayers.getFilledThroughWalls());
}
+ public static void runOnRenderThread(Runnable runnable) {
+ if (RenderSystem.isOnRenderThread()) {
+ runnable.run();
+ } else {
+ RenderSystem.recordRenderCall(() -> runnable.run());
+ }
+ }
+
/**
* Adds the title to {@link TitleContainer} and {@link #playNotificationSound() plays the notification sound} if the title is not in the {@link TitleContainer} already.
* No checking needs to be done on whether the title is in the {@link TitleContainer} already by the caller.