aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java
diff options
context:
space:
mode:
authorf3shqt <30647065+f3shqt@users.noreply.github.com>2024-05-07 15:18:58 +0100
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-22 20:52:39 -0400
commit79ecff610a0811a86efbbbcaed63260ea844551f (patch)
treeb3d98fd3d2609d40c04bb0467f442a0e91621897 /src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java
parent610c64758fc8d0b8bea0145c33881b60c0747bd7 (diff)
downloadSkyblocker-79ecff610a0811a86efbbbcaed63260ea844551f.tar.gz
Skyblocker-79ecff610a0811a86efbbbcaed63260ea844551f.tar.bz2
Skyblocker-79ecff610a0811a86efbbbcaed63260ea844551f.zip
Added Cold Overlay
Adds Minecraft Cold Overlay to the Glacite Tunnels
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java
new file mode 100644
index 00000000..441d2f48
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java
@@ -0,0 +1,70 @@
+package de.hysky.skyblocker.skyblock.dwarven;
+
+
+import com.mojang.blaze3d.systems.RenderSystem;
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.events.HudRenderEvents;
+import de.hysky.skyblocker.utils.Utils;
+import de.hysky.skyblocker.utils.scheduler.Scheduler;
+import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.text.Text;
+import net.minecraft.util.Identifier;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class GlaciteColdOverlay {
+ private static final Identifier POWDER_SNOW_OUTLINE = new Identifier("textures/misc/powder_snow_outline.png");
+ private static final Pattern COLD_PATTERN = Pattern.compile("Cold: -(\\d+)❄");
+ private static int cold = 0;
+ private static long resetTime = System.currentTimeMillis();
+
+ public static void init() {
+ Scheduler.INSTANCE.scheduleCyclic(GlaciteColdOverlay::update, 20);
+ HudRenderEvents.AFTER_MAIN_HUD.register(GlaciteColdOverlay::render);
+ ClientReceiveMessageEvents.GAME.register(GlaciteColdOverlay::coldReset);
+ }
+
+ private static void coldReset(Text text, boolean b) {
+ String message = text.getString();
+ if (message.equals("The warmth of the campfire reduced your ❄ Cold to 0!")) {
+ cold = 0;
+ resetTime = System.currentTimeMillis();
+ }
+ }
+
+ public static void update() {
+ if (!Utils.isInDwarvenMines() || System.currentTimeMillis() - resetTime < 3000 || !SkyblockerConfigManager.get().locations.dwarvenMines.enableGlaciteColdOverlay) {
+ cold = 0;
+ return;
+ }
+ for (String line : Utils.STRING_SCOREBOARD) {
+ Matcher coldMatcher = COLD_PATTERN.matcher(line);
+ if (coldMatcher.matches()) {
+ String value = coldMatcher.group(1);
+ cold = Integer.parseInt(value);
+ return;
+ }
+ }
+ cold = 0;
+ }
+
+ private static void renderOverlay(DrawContext context, Identifier texture, float opacity) {
+ RenderSystem.disableDepthTest();
+ RenderSystem.depthMask(false);
+ RenderSystem.enableBlend();
+ context.setShaderColor(1.0f, 1.0f, 1.0f, opacity);
+ context.drawTexture(texture, 0, 0, -90, 0.0f, 0.0f, context.getScaledWindowWidth(), context.getScaledWindowHeight(), context.getScaledWindowWidth(), context.getScaledWindowHeight());
+ RenderSystem.disableBlend();
+ RenderSystem.depthMask(true);
+ RenderSystem.enableDepthTest();
+ context.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
+ }
+
+ public static void render(DrawContext context, float tickDelta) {
+ if (Utils.isInDwarvenMines() && SkyblockerConfigManager.get().locations.dwarvenMines.enableGlaciteColdOverlay) {
+ renderOverlay(context, POWDER_SNOW_OUTLINE, cold / 100f);
+ }
+ }
+}