aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorUpFault <johian2004@gmail.com>2024-05-29 00:39:06 -0500
committerUpFault <johian2004@gmail.com>2024-06-01 21:12:58 -0500
commit757e6544ba3294024826068ef8dce1c3a9a394f1 (patch)
tree4d5abfbd94f0976817145d212158025231ef4d1b /src
parentfb6beb6b25e8fb71cbc3b6927c65630fa5bc0a8b (diff)
downloadSkyblocker-757e6544ba3294024826068ef8dce1c3a9a394f1.tar.gz
Skyblocker-757e6544ba3294024826068ef8dce1c3a9a394f1.tar.bz2
Skyblocker-757e6544ba3294024826068ef8dce1c3a9a394f1.zip
Added NucleusWaypoints, as of now it's just text that floats at the entrance of each section as well as one that's at the spawn of the nucleus
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/NucleusWaypoints.java61
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json2
5 files changed, 77 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java
index e77e9f4b..cb4399ef 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java
@@ -95,7 +95,15 @@ public class MiningCategory {
newValue -> config.mining.crystalHollows.metalDetectorHelper = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
- .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.mining.crystalHollows.nucleusWaypoints"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.mining.crystalHollows.nucleusWaypoints.@Tooltip")))
+ .binding(defaults.mining.crystalHollows.nucleusWaypoints,
+ () -> config.mining.crystalHollows.nucleusWaypoints,
+ newValue -> config.mining.crystalHollows.nucleusWaypoints = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
//Crystal Hollows Map
.group(OptionGroup.createBuilder()
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java
index a2a9bcf7..412a13ed 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/MiningConfig.java
@@ -61,6 +61,9 @@ public class MiningConfig {
public static class CrystalHollows {
@SerialEntry
public boolean metalDetectorHelper = true;
+
+ @SerialEntry
+ public boolean nucleusWaypoints = false;
}
public static class CrystalsHud {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java
index 63430489..e5215a52 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java
@@ -7,6 +7,7 @@ import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
@@ -33,7 +34,7 @@ public class CrystalsHud {
.then(ClientCommandManager.literal("hud")
.then(ClientCommandManager.literal("crystals")
.executes(Scheduler.queueOpenScreenCommand(CrystalsHudConfigScreen::new))))));
-
+ WorldRenderEvents.AFTER_TRANSLUCENT.register(NucleusWaypoints::render);
HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> {
if (!SkyblockerConfigManager.get().mining.crystalsHud.enabled
|| CLIENT.player == null
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/NucleusWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/NucleusWaypoints.java
new file mode 100644
index 00000000..8046ed19
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/NucleusWaypoints.java
@@ -0,0 +1,61 @@
+package de.hysky.skyblocker.skyblock.dwarven;
+
+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.rendering.v1.WorldRenderContext;
+import net.minecraft.text.MutableText;
+import net.minecraft.text.Text;
+import net.minecraft.text.TextColor;
+import net.minecraft.text.Style;
+import net.minecraft.util.DyeColor;
+import net.minecraft.util.math.BlockPos;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+public class NucleusWaypoints {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NucleusWaypoints.class);
+
+ private static class Waypoint {
+ BlockPos position;
+ String name;
+ DyeColor color;
+
+ Waypoint(BlockPos position, String name, DyeColor color) {
+ this.position = position;
+ this.name = name;
+ this.color = color;
+ }
+ }
+
+ private static final List<Waypoint> WAYPOINTS = List.of(
+ new Waypoint(new BlockPos(551, 116, 551), "Precursor Remnants", DyeColor.LIGHT_BLUE),
+ new Waypoint(new BlockPos(551, 116, 475), "Mithril Deposits", DyeColor.LIME),
+ new Waypoint(new BlockPos(475, 116, 551), "Goblin Holdout", DyeColor.ORANGE),
+ new Waypoint(new BlockPos(475, 116, 475), "Jungle", DyeColor.PURPLE),
+ new Waypoint(new BlockPos(513, 106, 524), "Nucleus", DyeColor.RED)
+ );
+
+ public static void render(WorldRenderContext context) {
+ try {
+ boolean enabled = SkyblockerConfigManager.get().mining.crystalHollows.nucleusWaypoints;
+ boolean inCrystalHollows = Utils.isInCrystalHollows();
+
+ if (enabled && inCrystalHollows) {
+ for (Waypoint waypoint : WAYPOINTS) {
+
+ int rgb = waypoint.color.getFireworkColor();
+ TextColor textColor = TextColor.fromRgb(rgb);
+
+ MutableText text = Text.literal(waypoint.name).setStyle(Style.EMPTY.withColor(textColor));
+
+ RenderHelper.renderText(context, text, waypoint.position.toCenterPos().add(0, 5, 0), 8, true);
+ }
+ }
+ } catch (Exception e) {
+ LOGGER.error("[{}] Error occurred while rendering Nucleus waypoints. {}", LOGGER.getName(), e);
+ }
+ }
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 930ebb43..5a63d857 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -414,6 +414,8 @@
"skyblocker.config.mining.crystalHollows": "Crystal Hollows",
"skyblocker.config.mining.crystalHollows.metalDetectorHelper": "Metal Detector Helper",
"skyblocker.config.mining.crystalHollows.metalDetectorHelper.@Tooltip": "Helper for the metal detector puzzle in the Mines of Divan.",
+ "skyblocker.config.mining.crystalHollows.nucleusWaypoints": "Nucleus Waypoints",
+ "skyblocker.config.mining.crystalHollows.nucleusWaypoints.@Tooltip": "Show waypoints to the Nucleus in the Crystal Hollows.",
"skyblocker.config.mining.crystalsHud": "Crystal Hollows Map",
"skyblocker.config.mining.crystalsHud.enabled": "Enabled",