From 38f2c51a116c87ca7ba6a6ffc5bd821770b57630 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Mon, 3 Mar 2025 07:22:45 +0300 Subject: Add teleport overlay color config (#1175) * Add teleport overlay color config * Oops forgot the translation * Fix alpha --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> --- .../skyblocker/config/categories/UIAndVisualsCategory.java | 11 +++++++++++ .../hysky/skyblocker/config/configs/UIAndVisualsConfig.java | 3 +++ .../java/de/hysky/skyblocker/skyblock/TeleportOverlay.java | 11 +++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java index 14372b8c..7e20f8ff 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.config.categories; import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.configs.UIAndVisualsConfig; +import de.hysky.skyblocker.skyblock.TeleportOverlay; import de.hysky.skyblocker.skyblock.fancybars.StatusBarsConfigScreen; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextManager; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextMode; @@ -369,6 +370,16 @@ public class UIAndVisualsCategory { newValue -> config.uiAndVisuals.teleportOverlay.enableTeleportOverlays = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(Option.createBuilder() + .name(Text.translatable("skyblocker.config.uiAndVisuals.teleportOverlay.teleportOverlayColor")) + .binding(defaults.uiAndVisuals.teleportOverlay.teleportOverlayColor, + () -> config.uiAndVisuals.teleportOverlay.teleportOverlayColor, + newValue -> { + config.uiAndVisuals.teleportOverlay.teleportOverlayColor = newValue; + TeleportOverlay.configCallback(newValue); + }) + .controller(opt -> ColorControllerBuilder.create(opt).allowAlpha(true)) + .build()) .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.uiAndVisuals.teleportOverlay.enableWeirdTransmission")) .binding(defaults.uiAndVisuals.teleportOverlay.enableWeirdTransmission, diff --git a/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java index 90efa5d2..081d6a4d 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java @@ -322,6 +322,9 @@ public class UIAndVisualsConfig { @SerialEntry public boolean enableTeleportOverlays = true; + @SerialEntry + public Color teleportOverlayColor = new Color(0x7F761594, true); + @SerialEntry public boolean enableWeirdTransmission = true; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java index ed97c768..f1e9840f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java @@ -16,12 +16,15 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.BlockPos; +import java.awt.*; + public class TeleportOverlay { - private static final float[] COLOR_COMPONENTS = {118f / 255f, 21f / 255f, 148f / 255f}; private static final MinecraftClient client = MinecraftClient.getInstance(); + private static float[] colorComponents; @Init public static void init() { + configCallback(SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.teleportOverlayColor); // Initialize colorComponents from the config value WorldRenderEvents.AFTER_TRANSLUCENT.register(TeleportOverlay::render); } @@ -101,7 +104,11 @@ public class TeleportOverlay { @SuppressWarnings("DataFlowIssue") BlockState state = client.world.getBlockState(pos); if (!state.isAir() && client.world.getBlockState(pos.up()).isAir() && client.world.getBlockState(pos.up(2)).isAir()) { - RenderHelper.renderFilled(wrc, pos, COLOR_COMPONENTS, 0.5f, false); + RenderHelper.renderFilled(wrc, pos, colorComponents, colorComponents[3], false); } } + + public static void configCallback(Color color) { + colorComponents = color.getRGBComponents(null); + } } -- cgit