aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java64
1 files changed, 43 insertions, 21 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
index 5d6df319..3563741c 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -1,7 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
+import it.unimi.dsi.fastutil.ints.IntIntPair;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.CommsWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
import me.xmrvizzy.skyblocker.utils.scheduler.Scheduler;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
@@ -20,11 +21,9 @@ import java.util.stream.Stream;
public class DwarvenHud {
-
public static final MinecraftClient client = MinecraftClient.getInstance();
public static List<Commission> commissionList = new ArrayList<>();
-
public static final List<Pattern> COMMISSIONS = Stream.of(
"(?:Titanium|Mithril|Hard Stone) Miner",
"(?:Ice Walker|Goblin|Goblin Raid|Automaton|Sludge|Team Treasurite Member|Yog|Boss Corleone|Thyst) Slayer",
@@ -37,8 +36,7 @@ public class DwarvenHud {
"2x Mithril Powder Collector",
"(?:Ruby|Amber|Sapphire|Jade|Amethyst|Topaz) Gemstone Collector",
"(?:Amber|Sapphire|Jade|Amethyst|Topaz) Crystal Hunter",
- "Chest Looter"
- ).map(s -> Pattern.compile("^.*(" + s + "): (\\d+\\.?\\d*%|DONE)"))
+ "Chest Looter").map(s -> Pattern.compile("^.*(" + s + "): (\\d+\\.?\\d*%|DONE)"))
.collect(Collectors.toList());
public static void init() {
@@ -54,15 +52,34 @@ public class DwarvenHud {
|| commissionList.isEmpty()) {
return;
}
- render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList);
+ render(HudCommsWidget.INSTANCE, context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList);
});
}
- public static void render(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
+ public static IntIntPair getDimForConfig(List<Commission> commissions) {
+ return switch (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.style) {
+ case SIMPLE -> {
+ HudCommsWidget.INSTANCE_CFG.updateData(commissions, false);
+ yield IntIntPair.of(
+ HudCommsWidget.INSTANCE_CFG.getWidth(),
+ HudCommsWidget.INSTANCE_CFG.getHeight());
+ }
+ case FANCY -> {
+ HudCommsWidget.INSTANCE_CFG.updateData(commissions, true);
+ yield IntIntPair.of(
+ HudCommsWidget.INSTANCE_CFG.getWidth(),
+ HudCommsWidget.INSTANCE_CFG.getHeight());
+ }
+ default -> IntIntPair.of(200, 20 * commissions.size());
+ };
+ }
+
+ public static void render(HudCommsWidget hcw, DrawContext context, int hudX, int hudY, List<Commission> commissions) {
switch (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.style) {
- case SIMPLE -> renderSimple(context, hudX, hudY, commissions);
- case FANCY -> renderFancy(context, hudX, hudY, commissions);
+ case SIMPLE -> renderSimple(hcw, context, hudX, hudY, commissions);
+ case FANCY -> renderFancy(hcw, context, hudX, hudY, commissions);
case CLASSIC -> renderClassic(context, hudX, hudY, commissions);
}
}
@@ -85,23 +102,28 @@ public class DwarvenHud {
}
}
- public static void renderSimple(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
- CommsWidget cw = new CommsWidget(commissions, false);
- cw.setX(hudX);
- cw.setY(hudY);
- cw.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ public static void renderSimple(HudCommsWidget hcw, DrawContext context, int hudX, int hudY, List<Commission> commissions) {
+ hcw.updateData(commissions, false);
+ hcw.update();
+ hcw.setX(hudX);
+ hcw.setY(hudY);
+ hcw.render(context,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
}
- public static void renderFancy(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
- CommsWidget cw = new CommsWidget(commissions, true);
- cw.setX(hudX);
- cw.setY(hudY);
- cw.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ public static void renderFancy(HudCommsWidget hcw, DrawContext context, int hudX, int hudY, List<Commission> commissions) {
+ hcw.updateData(commissions, true);
+ hcw.update();
+ hcw.setX(hudX);
+ hcw.setY(hudY);
+ hcw.render(context,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
}
public static void update() {
commissionList = new ArrayList<>();
- if (client.player == null || client.getNetworkHandler() == null || !SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled) return;
+ if (client.player == null || client.getNetworkHandler() == null || !SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled)
+ return;
client.getNetworkHandler().getPlayerList().forEach(playerListEntry -> {
if (playerListEntry.getDisplayName() != null) {
@@ -116,7 +138,7 @@ public class DwarvenHud {
});
}
- // steamroller tactics to get visibility from outside classes (CommsWidget)
+ // steamroller tactics to get visibility from outside classes (HudCommsWidget)
public record Commission(String commission, String progression) {
}
} \ No newline at end of file