aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-01-31 10:52:37 +0000
committerolim <bobq4582@gmail.com>2024-01-31 10:52:37 +0000
commit86035f311b28094daf1ab7dbda7c888259e56723 (patch)
tree1c53e15c03780135f783d88bc00e4ed62bda0482 /src/main
parentbc5cf9a37e4241096bd5ec1b2491ad71281593ff (diff)
downloadSkyblocker-86035f311b28094daf1ab7dbda7c888259e56723.tar.gz
Skyblocker-86035f311b28094daf1ab7dbda7c888259e56723.tar.bz2
Skyblocker-86035f311b28094daf1ab7dbda7c888259e56723.zip
added powder hud
added powder to the dwarven hud
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DwarvenMinesCategory.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java151
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java38
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudPowderWidget.java47
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json3
6 files changed, 201 insertions, 67 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 6f7db908..e84d2d85 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -886,7 +886,10 @@ public class SkyblockerConfig {
public static class DwarvenHud {
@SerialEntry
- public boolean enabled = true;
+ public boolean enabledCommissions = true;
+
+ @SerialEntry
+ public boolean enabledPowder = true;
@SerialEntry
public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
@@ -895,26 +898,29 @@ public class SkyblockerConfig {
public boolean enableBackground = true;
@SerialEntry
- public int x = 10;
+ public int commissionsX = 10;
@SerialEntry
- public int y = 10;
+ public int commissionsY = 10;
+
+ @SerialEntry
+ public int powderX = 10;
+
+ @SerialEntry
+ public int powderY = 70;
}
public static class CrystalsHud {
@SerialEntry
public boolean enabled = true;
@SerialEntry
- public boolean enableBackground = true;
-
- @SerialEntry
public boolean showLocations = true;
@SerialEntry
public int x = 10;
@SerialEntry
- public int y = 50;
+ public int y = 130;
}
public static class CrystalsWaypoints {
@SerialEntry
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DwarvenMinesCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DwarvenMinesCategory.java
index c575616a..4bacc2b6 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/DwarvenMinesCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/DwarvenMinesCategory.java
@@ -46,12 +46,19 @@ public class DwarvenMinesCategory {
.name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud"))
.collapsed(false)
.option(Option.<Boolean>createBuilder()
- .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled"))//todo seperate coms and powder
+ .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabledCommissions"))
.binding(defaults.locations.dwarvenMines.dwarvenHud.enabledCommissions,
() -> config.locations.dwarvenMines.dwarvenHud.enabledCommissions,
newValue -> config.locations.dwarvenMines.dwarvenHud.enabledCommissions = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabledPowder"))
+ .binding(defaults.locations.dwarvenMines.dwarvenHud.enabledPowder,
+ () -> config.locations.dwarvenMines.dwarvenHud.enabledPowder,
+ newValue -> config.locations.dwarvenMines.dwarvenHud.enabledPowder = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
.option(Option.<SkyblockerConfig.DwarvenHudStyle>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]"),
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
index 6fa03816..e7ffe362 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -3,7 +3,9 @@ package de.hysky.skyblocker.skyblock.dwarven;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.tabhud.util.Colors;
import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
+import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudPowderWidget;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
+import it.unimi.dsi.fastutil.Pair;
import it.unimi.dsi.fastutil.ints.IntIntPair;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
@@ -25,6 +27,9 @@ public class DwarvenHud {
public static final MinecraftClient client = MinecraftClient.getInstance();
public static List<Commission> commissionList = new ArrayList<>();
+ public static int mithrilPowder = 0;
+ public static int gemStonePowder = 0;
+
public static final List<Pattern> COMMISSIONS = Stream.of(
"(?:Titanium|Mithril|Hard Stone) Miner",
"(?:Ice Walker|Golden Goblin|(?<!Golden )Goblin|Goblin Raid|Automaton|Sludge|Team Treasurite Member|Yog|Boss Corleone|Thyst) Slayer",
@@ -47,90 +52,144 @@ public class DwarvenHud {
.executes(Scheduler.queueOpenScreenCommand(DwarvenHudConfigScreen::new))))));
HudRenderCallback.EVENT.register((context, tickDelta) -> {
- if (!SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabled
+ if ((!SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions && !SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledPowder)
|| client.options.playerListKey.isPressed()
|| client.player == null
|| commissionList.isEmpty()) {
return;
}
- render(HudCommsWidget.INSTANCE, context, SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x,
- SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y, commissionList);
+ render(HudCommsWidget.INSTANCE,HudPowderWidget.INSTANCE, context,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY,
+ commissionList,mithrilPowder,gemStonePowder);
});
}
- public static IntIntPair getDimForConfig(List<Commission> commissions) {
+ public static Pair<IntIntPair,IntIntPair> getDimForConfig(List<Commission> commissions) { //todo add powder
return switch (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.style) {
case SIMPLE -> {
HudCommsWidget.INSTANCE_CFG.updateData(commissions, false);
- yield IntIntPair.of(
- HudCommsWidget.INSTANCE_CFG.getWidth(),
- HudCommsWidget.INSTANCE_CFG.getHeight());
+ yield Pair.of(
+ IntIntPair.of(
+ HudCommsWidget.INSTANCE_CFG.getWidth(),
+ HudCommsWidget.INSTANCE_CFG.getHeight()),
+ IntIntPair.of(
+ HudPowderWidget.INSTANCE_CFG.getWidth(),
+ HudPowderWidget.INSTANCE_CFG.getHeight())
+ );
}
case FANCY -> {
HudCommsWidget.INSTANCE_CFG.updateData(commissions, true);
- yield IntIntPair.of(
- HudCommsWidget.INSTANCE_CFG.getWidth(),
- HudCommsWidget.INSTANCE_CFG.getHeight());
+ yield Pair.of(
+ IntIntPair.of(
+ HudCommsWidget.INSTANCE_CFG.getWidth(),
+ HudCommsWidget.INSTANCE_CFG.getHeight()),
+ IntIntPair.of(
+ HudPowderWidget.INSTANCE_CFG.getWidth(),
+ HudPowderWidget.INSTANCE_CFG.getHeight())
+ );
}
- default -> IntIntPair.of(200, 20 * commissions.size());
+ default -> Pair.of(
+ IntIntPair.of(
+ 200,
+ 20 * commissions.size()),
+ IntIntPair.of(
+ 200,
+ 40)
+ );
};
}
- public static void render(HudCommsWidget hcw, DrawContext context, int hudX, int hudY, List<Commission> commissions) {
+ public static void render(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) {
switch (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.style) {
- case SIMPLE -> renderSimple(hcw, context, hudX, hudY, commissions);
- case FANCY -> renderFancy(hcw, context, hudX, hudY, commissions);
- case CLASSIC -> renderClassic(context, hudX, hudY, commissions);
+ case SIMPLE -> renderSimple(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions,mithril,gemStone);
+ case FANCY -> renderFancy(hcw,hpw, context, comHudX, comHudY,powderHudX,powderHudY, commissions,mithril,gemStone);
+ case CLASSIC -> renderClassic(context, comHudX, comHudY,powderHudX,powderHudY, commissions);
}
}
- public static void renderClassic(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
+ public static void renderClassic(DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions) {
if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground) {
- context.fill(hudX, hudY, hudX + 200, hudY + (20 * commissions.size()), 0x64000000);
+ context.fill(comHudX, comHudY, comHudX + 200, comHudY + (20 * commissions.size()), 0x64000000);
+ context.fill(powderHudX, powderHudY, powderHudX + 200, powderHudY + 40, 0x64000000);
}
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions) {
+ int y = 0;
+ for (Commission commission : commissions) {
+ float percentage;
+ if (!commission.progression().contains("DONE")) {
+ percentage = Float.parseFloat(commission.progression().substring(0, commission.progression().length() - 1));
+ } else {
+ percentage = 100f;
+ }
- int y = 0;
- for (Commission commission : commissions) {
- float percentage;
- if (!commission.progression().contains("DONE")) {
- percentage = Float.parseFloat(commission.progression().substring(0, commission.progression().length() - 1));
- } else {
- percentage = 100f;
+ context
+ .drawTextWithShadow(client.textRenderer,
+ Text.literal(commission.commission + ": ")
+ .styled(style -> style.withColor(Formatting.AQUA))
+ .append(Text.literal(commission.progression)
+ .styled(style -> style.withColor(Colors.hypixelProgressColor(percentage)))),
+ comHudX + 5, comHudY + y + 5, 0xFFFFFFFF);
+ y += 20;
}
-
+ }
+ if(SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledPowder) {
+ //render mithril powder then gemstone
+ context
+ .drawTextWithShadow(client.textRenderer,
+ Text.literal("Mithril: " + mithrilPowder)
+ .styled(style -> style.withColor(Formatting.AQUA)),
+ powderHudX + 5, powderHudY + 5, 0xFFFFFFFF);
context
.drawTextWithShadow(client.textRenderer,
- Text.literal(commission.commission + ": ")
- .styled(style -> style.withColor(Formatting.AQUA))
- .append(Text.literal(commission.progression)
- .styled(style -> style.withColor(Colors.hypixelProgressColor(percentage)))),
- hudX + 5, hudY + y + 5, 0xFFFFFFFF);
- y += 20;
+ Text.literal("Gemstone: " + gemStonePowder)
+ .styled(style -> style.withColor(Formatting.DARK_PURPLE)),
+ powderHudX + 5, powderHudY + 25, 0xFFFFFFFF);
}
}
- 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,
- SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ public static void renderSimple(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) {
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions) {
+ hcw.updateData(commissions, false);
+ hcw.update();
+ hcw.setX(comHudX);
+ hcw.setY(comHudY);
+ hcw.render(context,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ }
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledPowder) {
+ hpw.update();
+ hpw.setX(powderHudX);
+ hpw.setY(powderHudY);
+ hpw.render(context,
+ SkyblockerConfigManager.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,
- SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ public static void renderFancy(HudCommsWidget hcw, HudPowderWidget hpw, DrawContext context, int comHudX, int comHudY, int powderHudX, int powderHudY, List<Commission> commissions,int mithril, int gemStone) {
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions) {
+ hcw.updateData(commissions, true);
+ hcw.update();
+ hcw.setX(comHudX);
+ hcw.setY(comHudY);
+ hcw.render(context,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ }
+ if (SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledPowder) {
+ hpw.update();
+ hpw.setX(powderHudX);
+ hpw.setY(powderHudY);
+ hpw.render(context,
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ }
}
public static void update() {
commissionList = new ArrayList<>();
- if (client.player == null || client.getNetworkHandler() == null || !SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabled)
+ if (client.player == null || client.getNetworkHandler() == null || !SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.enabledCommissions)
return;
client.getNetworkHandler().getPlayerList().forEach(playerListEntry -> {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
index 6f281ba9..5efa9c03 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
@@ -3,7 +3,9 @@ package de.hysky.skyblocker.skyblock.dwarven;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud.Commission;
import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
+import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudPowderWidget;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import it.unimi.dsi.fastutil.Pair;
import it.unimi.dsi.fastutil.ints.IntIntPair;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
@@ -15,9 +17,13 @@ import java.util.List;
public class DwarvenHudConfigScreen extends Screen {
private static final List<DwarvenHud.Commission> CFG_COMMS = List.of(new Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%"));
+ private static final int CFG_MITHRIL = 100;
+ private static final int CFG_GEMSTONE = 1010;
+ private int commissionsHudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX;
+ private int commissionsHudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY;
- private int hudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x;
- private int hudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y;
+ private int powderHudX = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX;
+ private int powderHudY = SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY;
private final Screen parent;
protected DwarvenHudConfigScreen() {
@@ -33,16 +39,20 @@ public class DwarvenHudConfigScreen extends Screen {
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.render(context, mouseX, mouseY, delta);
renderBackground(context, mouseX, mouseY, delta);
- DwarvenHud.render(HudCommsWidget.INSTANCE_CFG, context, hudX, hudY, List.of(new DwarvenHud.Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%")));
+ DwarvenHud.render(HudCommsWidget.INSTANCE_CFG, HudPowderWidget.INSTANCE_CFG, context, commissionsHudX, commissionsHudY,powderHudX,powderHudY,CFG_COMMS,CFG_MITHRIL,CFG_GEMSTONE);
context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB());
}
@Override
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) {
- IntIntPair dims = DwarvenHud.getDimForConfig(CFG_COMMS);
- if (RenderHelper.pointIsInArea(mouseX, mouseY, hudX, hudY, hudX + 200, hudY + 40) && button == 0) {
- hudX = (int) Math.max(Math.min(mouseX - (double) dims.leftInt() / 2, this.width - dims.leftInt()), 0);
- hudY = (int) Math.max(Math.min(mouseY - (double) dims.rightInt() / 2, this.height - dims.rightInt()), 0);
+ Pair<IntIntPair,IntIntPair> dims = DwarvenHud.getDimForConfig(CFG_COMMS);
+ if (RenderHelper.pointIsInArea(mouseX, mouseY, commissionsHudX, commissionsHudY, commissionsHudX + 200, commissionsHudY + 40) && button == 0) {
+ commissionsHudX = (int) Math.max(Math.min(mouseX - (double) dims.first().leftInt() / 2, this.width - dims.first().leftInt()), 0);
+ commissionsHudY = (int) Math.max(Math.min(mouseY - (double) dims.first().rightInt() / 2, this.height - dims.first().rightInt()), 0);
+ }
+ if (RenderHelper.pointIsInArea(mouseX, mouseY, powderHudX, powderHudY, powderHudX + 200, powderHudY + 40) && button == 0) {
+ powderHudX = (int) Math.max(Math.min(mouseX - (double) dims.second().leftInt() / 2, this.width - dims.second().leftInt()), 0);
+ powderHudY = (int) Math.max(Math.min(mouseY - (double) dims.second().rightInt() / 2, this.height - dims.second().rightInt()), 0);
}
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
}
@@ -50,17 +60,21 @@ public class DwarvenHudConfigScreen extends Screen {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (button == 1) {
- IntIntPair dims = DwarvenHud.getDimForConfig(CFG_COMMS);
- hudX = this.width / 2 - dims.leftInt();
- hudY = this.height / 2 - dims.rightInt();
+ Pair<IntIntPair,IntIntPair> dims = DwarvenHud.getDimForConfig(CFG_COMMS);
+ commissionsHudX = this.width / 2 - dims.left().leftInt();
+ commissionsHudY = this.height / 2 - dims.left().rightInt();
+ powderHudX = this.width / 2 - dims.right().leftInt();
+ powderHudY = this.height / 2 - dims.right().rightInt() + dims.left().rightInt(); //add this to make it bellow the other widget
}
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void close() {
- SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.x = hudX;
- SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.y = hudY;
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsX = commissionsHudX;
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.commissionsY = commissionsHudY;
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderX = powderHudX;
+ SkyblockerConfigManager.get().locations.dwarvenMines.dwarvenHud.powderY = powderHudY;
SkyblockerConfigManager.save();
client.setScreen(parent);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudPowderWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudPowderWidget.java
new file mode 100644
index 00000000..345794d8
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudPowderWidget.java
@@ -0,0 +1,47 @@
+package de.hysky.skyblocker.skyblock.tabhud.widget.hud;
+
+import java.util.List;
+
+import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud.Commission;
+import de.hysky.skyblocker.skyblock.tabhud.util.Colors;
+import de.hysky.skyblocker.skyblock.tabhud.util.Ico;
+import de.hysky.skyblocker.skyblock.tabhud.widget.Widget;
+import de.hysky.skyblocker.skyblock.tabhud.widget.component.Component;
+import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent;
+import de.hysky.skyblocker.skyblock.tabhud.widget.component.ProgressComponent;
+import net.minecraft.text.MutableText;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+// this widget shows the status of the king's commissions.
+// (dwarven mines and crystal hollows)
+// USE ONLY WITH THE DWARVEN HUD!
+
+public class HudPowderWidget extends Widget {
+
+ private static final MutableText TITLE = Text.literal("Powders").formatted(Formatting.DARK_AQUA,
+ Formatting.BOLD);
+
+
+ // disgusting hack to get around text renderer issues.
+ // the ctor eventually tries to get the font's height, which doesn't work
+ // when called before the client window is created (roughly).
+ // the rebdering god 2 from the fabricord explained that detail, thanks!
+ //coppied from the HodCommsWidget to be used in the same place
+ public static final HudPowderWidget INSTANCE = new HudPowderWidget();
+ public static final HudPowderWidget INSTANCE_CFG = new HudPowderWidget();
+
+ // another repulsive hack to make this widget-like hud element work with the new widget class
+ // DON'T USE WITH THE WIDGET SYSTEM, ONLY USE FOR DWARVENHUD!
+ public HudPowderWidget() {
+ super(TITLE, Formatting.DARK_AQUA.getColorValue());
+ }
+
+
+ @Override
+ public void updateContent() {
+ this.addSimpleIcoText(Ico.MITHRIL, "Mithril:", Formatting.AQUA, 46);
+ this.addSimpleIcoText(Ico.AMETHYST_SHARD, "Gemstone:", Formatting.DARK_PURPLE, 47);
+ }
+
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 0a6ae442..c98d0c61 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -268,7 +268,8 @@
"text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Solve Fetchur",
"text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Solve Puzzler Puzzle",
"text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD",
- "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Enabled",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabledCommissions": "Enable Commissions",
+ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabledPowder": "Enable Powder",
"text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "Style for HUD",
"text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "Simple: Shows name and percentage.",
"text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]": "\nFancy: Shows name, percentage, progress bar and an icon.",