diff options
| author | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-05-07 23:10:15 +0200 |
|---|---|---|
| committer | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-12-12 18:19:04 +0100 |
| commit | dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f (patch) | |
| tree | 994536718c3e9110f3e2044ca21aa2342ea4d872 /src/main/java | |
| parent | 152b6c6ce8331567d37e0d88721b33eef495031e (diff) | |
| download | Skyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.tar.gz Skyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.tar.bz2 Skyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.zip | |
progress porting all widgets
Diffstat (limited to 'src/main/java')
24 files changed, 210 insertions, 143 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java index 4f311cb1..78118e4c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java @@ -5,6 +5,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import java.util.NoSuchElementException; import com.google.gson.JsonArray; @@ -12,21 +13,24 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget; +import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; +import de.hysky.skyblocker.skyblock.tabhud.util.ScreenConst; +import de.hysky.skyblocker.skyblock.tabhud.widget.*; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.AlignStage; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.CollideStage; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PipelineStage; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PlaceStage; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.StackStage; -import de.hysky.skyblocker.skyblock.tabhud.widget.DungeonPlayerWidget; -import de.hysky.skyblocker.skyblock.tabhud.widget.ErrorWidget; -import de.hysky.skyblocker.skyblock.tabhud.widget.EventWidget; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; public class ScreenBuilder { + public static boolean positionsNeedsUpdating = true; + // layout pipeline private final ArrayList<PipelineStage> layoutPipeline = new ArrayList<>(); @@ -37,6 +41,8 @@ public class ScreenBuilder { private final String builderName; + private final Map<String, Boolean> positioning = new Object2ObjectOpenHashMap<>(); + /** * Create a ScreenBuilder from a json. */ @@ -160,20 +166,44 @@ public class ScreenBuilder { return this.objectMap.get(name); } + private static int totalWidth = 0; + /** * Run the pipeline to build a Screen */ public void run(DrawContext context, int screenW, int screenH) { - for (HudWidget w : instances) { - w.update(); - } - for (PipelineStage ps : layoutPipeline) { - ps.run(screenW, screenH); + if (positionsNeedsUpdating) { + + positionsNeedsUpdating = false; + final int maxY = 200; + final int startY = 20; + + totalWidth = 0; + + int currentWidth = 0; + int currentY = startY; + for (TabHudWidget tabHudWidget : PlayerListMgr.widgetsToShow) { + if (positioning.getOrDefault(tabHudWidget.getInternalID(), false)) continue; + if (currentY + tabHudWidget.getHeight() > maxY) { + totalWidth += currentWidth + ScreenConst.WIDGET_PAD; + currentY = startY; + currentWidth = 0; + } + tabHudWidget.setPosition(totalWidth, currentY); + currentY += tabHudWidget.getHeight() + ScreenConst.WIDGET_PAD; + currentWidth = Math.max(currentWidth, tabHudWidget.getWidth()); + } + totalWidth += currentWidth; } + + MatrixStack matrices = context.getMatrices(); + matrices.push(); + matrices.translate((float) (screenW - totalWidth)/2, 0, 0); for (HudWidget w : instances) { w.render(context); } + matrices.pop(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java index a877e052..5591ea37 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java @@ -6,7 +6,9 @@ import com.google.gson.JsonParser; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.skyblock.tabhud.TabHud; +import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; import de.hysky.skyblocker.skyblock.tabhud.util.PlayerLocator; +import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget; import de.hysky.skyblocker.skyblock.tabhud.widget.TabHudWidget; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.fabricmc.fabric.api.resource.ResourcePackActivationType; @@ -21,6 +23,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; @@ -82,7 +86,21 @@ public class ScreenMaster { @Init public static void init() { - //ClassPath.from(TabHudWidget.class.getClassLoader()).getTopLevelClasses("de.hysky.skyblocker.skyblock.tabhud.widget").iterator().forEachRemaining(); + try { + ClassPath.from(TabHudWidget.class.getClassLoader()).getTopLevelClasses("de.hysky.skyblocker.skyblock.tabhud.widget").iterator().forEachRemaining(classInfo -> { + Class<?> load = classInfo.load(); + if (!load.getSuperclass().equals(TabHudWidget.class)) return; + try { + TabHudWidget tabHudWidget = (TabHudWidget) load.getDeclaredConstructor().newInstance(); + PlayerListMgr.widgetInstances.put(tabHudWidget.getHypixelWidgetName(), tabHudWidget); + } catch (NoSuchMethodException | InvocationTargetException | InstantiationException | IllegalAccessException e) { + LOGGER.error("[Skyblocker] Failed to load {} hud widget", classInfo.getName(), e); + } + + }); + } catch (Exception e) { + LOGGER.error("[Skyblocker] Failed to get instances of hud widgets", e); + } // WHY MUST IT ALWAYS BE SUCH NESTED GARBAGE MINECRAFT KEEP THAT IN DFU FFS diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java index 01bf4500..6cf8c684 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.tabhud.util; import de.hysky.skyblocker.mixins.accessors.PlayerListHudAccessor; +import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenBuilder; import de.hysky.skyblocker.skyblock.tabhud.widget.TabHudWidget; import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; import de.hysky.skyblocker.utils.Utils; @@ -37,7 +38,7 @@ import java.util.regex.Pattern; public class PlayerListMgr { public static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Regex"); - private static final Pattern PLAYERS_COLUMN_PATTERN = Pattern.compile("(^|\\s)Players \\((\\d+)\\)(\\s|$)"); + private static final Pattern PLAYERS_COLUMN_PATTERN = Pattern.compile("(^|\\s)(Players \\(\\d+\\)|Island)(\\s|$)"); private static final Pattern INFO_COLUMN_PATTERN = Pattern.compile("(^|\\s)Info(\\s|$)"); /** @@ -74,6 +75,7 @@ public class PlayerListMgr { boolean playersDone = false; String hypixelWidgetName = ""; List<Text> contents = new ArrayList<>(); + // TODO DUNGEONS CHECK for (PlayerListEntry playerListEntry : playerList) { Text displayName = playerListEntry.getDisplayName(); @@ -106,12 +108,13 @@ public class PlayerListMgr { contents.clear(); Pair<String, ? extends Text> nameAndInfo = getNameAndInfo(displayName); hypixelWidgetName = nameAndInfo.left(); - contents.add(nameAndInfo.right()); + if (!nameAndInfo.right().getString().isBlank()) contents.add(nameAndInfo.right()); continue; } contents.add(displayName); } } + ScreenBuilder.positionsNeedsUpdating = true; } private static TabHudWidget getTabHudWidget(String hypixelWidgetName, List<Text> lines) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java index 7464429f..e8b9c4f2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java @@ -12,7 +12,7 @@ public class CameraPositionWidget extends HudWidget { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); public CameraPositionWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super(TITLE, Formatting.DARK_PURPLE.getColorValue(), "position"); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java index be72b31b..04babee7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -15,7 +16,7 @@ import net.minecraft.util.Formatting; // this widget shows the status of the king's commissions. // (dwarven mines and crystal hollows) -public class CommsWidget extends HudWidget { +public class CommsWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Commissions").formatted(Formatting.DARK_AQUA, Formatting.BOLD); @@ -26,33 +27,31 @@ public class CommsWidget extends HudWidget { private static final Pattern COMM_PATTERN = Pattern.compile("(?<name>.*): (?<progress>.*)%?"); public CommsWidget() { - super(TITLE, Formatting.DARK_AQUA.getColorValue()); + super("Commissions", TITLE, Formatting.DARK_AQUA.getColorValue()); } @Override - public void updateContent() { - for (int i = 50; i <= 53; i++) { - Matcher m = PlayerListMgr.regexAt(i, COMM_PATTERN); - // end of comms found? - if (m == null) { - if (i == 50) { - this.addComponent(new IcoTextComponent()); + public void updateContent(List<Text> lines) { + if (lines.isEmpty()) { + this.addComponent(new IcoTextComponent()); + return; + } + for (Text line : lines) { + Matcher m = COMM_PATTERN.matcher(line.getString()); + if (m.matches()) { + ProgressComponent pc; + + String name = m.group("name"); + String progress = m.group("progress"); + + if (progress.equals("DONE")) { + pc = new ProgressComponent(Ico.BOOK, Text.of(name), Text.of(progress), 100f, Colors.pcntToCol(100)); + } else { + float pcnt = Float.parseFloat(progress.substring(0, progress.length() - 1)); + pc = new ProgressComponent(Ico.BOOK, Text.of(name), pcnt, Colors.pcntToCol(pcnt)); } - break; - } - - ProgressComponent pc; - - String name = m.group("name"); - String progress = m.group("progress"); - - if (progress.equals("DONE")) { - pc = new ProgressComponent(Ico.BOOK, Text.of(name), Text.of(progress), 100f, Colors.pcntToCol(100)); - } else { - float pcnt = Float.parseFloat(progress.substring(0, progress.length() - 1)); - pc = new ProgressComponent(Ico.BOOK, Text.of(name), pcnt, Colors.pcntToCol(pcnt)); + this.addComponent(pc); } - this.addComponent(pc); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java index a7fd93e5..a00370ca 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java @@ -3,25 +3,39 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; import de.hysky.skyblocker.skyblock.tabhud.util.Ico; import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; +import de.hysky.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; +import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.util.List; + // this widget shows info about the garden's composter -public class ComposterWidget extends HudWidget { +public class ComposterWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Composter").formatted(Formatting.GREEN, Formatting.BOLD); public ComposterWidget() { - super(TITLE, Formatting.GREEN.getColorValue()); + super("Composter", TITLE, Formatting.GREEN.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> lines) { int offset = (PlayerListMgr.strAt(46) != null) ? 1 : 0; + for (Text line : lines) { + switch (line.getString().toLowerCase()) { + case String s when s.contains("organic") -> this.addComponent(new IcoTextComponent(Ico.SAPLING, line)); + case String s when s.contains("fuel") -> this.addComponent(new IcoTextComponent(Ico.FURNACE, line)); + case String s when s.contains("time") -> this.addComponent(new IcoTextComponent(Ico.CLOCK, line)); + case String s when s.contains("stored") -> this.addComponent(new IcoTextComponent(Ico.COMPOSTER, line)); + default -> this.addComponent(new PlainTextComponent(line)); + } + } + this.addSimpleIcoText(Ico.SAPLING, "Organic Matter:", Formatting.YELLOW, 48 + offset); this.addSimpleIcoText(Ico.FURNACE, "Fuel:", Formatting.BLUE, 49 + offset); this.addSimpleIcoText(Ico.CLOCK, "Time Left:", Formatting.RED, 50 + offset); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java index c65d5a58..8a75f9af 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,7 +14,8 @@ import net.minecraft.util.Formatting; // this widget shows info about active super cookies // or not, if you're unwilling to buy one -public class CookieWidget extends HudWidget { +// TODO change maybe at some point +public class CookieWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Cookie Info").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); @@ -21,11 +23,11 @@ public class CookieWidget extends HudWidget { private static final Pattern COOKIE_PATTERN = Pattern.compile(".*\\nCookie Buff\\n(?<buff>.*)\\n"); public CookieWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Cookies", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { String footertext = PlayerListMgr.getFooter(); if (footertext == null || !footertext.contains("Cookie Buff")) { this.addComponent(new IcoTextComponent()); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java index a86f27bf..fc3362ed 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java @@ -8,20 +8,21 @@ import net.minecraft.util.Formatting; import java.util.Arrays; import java.util.Comparator; +import java.util.List; // this widget shows a list of obtained dungeon buffs -public class DungeonBuffWidget extends HudWidget { +public class DungeonBuffWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Dungeon Buffs").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); public DungeonBuffWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Dungeon Buffs", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { String footertext = PlayerListMgr.getFooter(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java index 651b24e4..2494d742 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,7 +14,7 @@ import net.minecraft.util.Formatting; // this widget shows various dungeon info // deaths, healing, dmg taken, milestones -public class DungeonDeathWidget extends HudWidget { +public class DungeonDeathWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Death").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); @@ -23,11 +24,11 @@ public class DungeonDeathWidget extends HudWidget { private static final Pattern DEATH_PATTERN = Pattern.compile("Team Deaths: (?<deathnum>\\d+).*"); public DungeonDeathWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Dungeon Buffs", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { Matcher m = PlayerListMgr.regexAt(25, DEATH_PATTERN); if (m == null) { this.addComponent(new IcoTextComponent()); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java index 365c3d21..e8809596 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java @@ -7,20 +7,22 @@ import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.util.List; + // this widget shows info about... something? // related to downed people in dungeons, not sure what this is supposed to show -public class DungeonDownedWidget extends HudWidget { +public class DungeonDownedWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Downed").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); public DungeonDownedWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Downed", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { String down = PlayerListMgr.strAt(21); if (down == null) { this.addComponent(new IcoTextComponent()); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java index 0b3f8f10..cbf881ea 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -16,7 +17,7 @@ import net.minecraft.util.Formatting; // this widget shows info about a player in the current dungeon group -public class DungeonPlayerWidget extends HudWidget { +public class DungeonPlayerWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Player").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); @@ -49,12 +50,12 @@ public class DungeonPlayerWidget extends HudWidget { // title needs to be changeable here public DungeonPlayerWidget(int player) { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Dungeon Players", TITLE, Formatting.DARK_PURPLE.getColorValue()); this.player = player; } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { int start = 1 + (player - 1) * 4; if (PlayerListMgr.strAt(start) == null) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java index 42cc06a8..9beb85e1 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -12,7 +13,7 @@ import net.minecraft.util.Formatting; // this widget shows info about all puzzeles in the dungeon (name and status) -public class DungeonPuzzleWidget extends HudWidget { +public class DungeonPuzzleWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Puzzles").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); @@ -25,11 +26,11 @@ public class DungeonPuzzleWidget extends HudWidget { private static final Pattern PUZZLE_PATTERN = Pattern.compile("(?<name>.*): \\[(?<status>.*)\\] ?.*"); public DungeonPuzzleWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Puzzles", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { int pos = 48; while (pos < 60) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java index 8d28208d..4f30bd1d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java @@ -7,21 +7,22 @@ import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.util.List; import java.util.regex.Pattern; // this widget shows info about the secrets of the dungeon -public class DungeonSecretWidget extends HudWidget { +public class DungeonSecretWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Discoveries").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); private static final Pattern DISCOVERIES = Pattern.compile("Discoveries: (\\d+)"); public DungeonSecretWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Discoveries", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { if (!DungeonScore.isDungeonStarted()) { this.addSimpleIcoText(Ico.CHEST, "Secrets:", Formatting.YELLOW, 30); this.addSimpleIcoText(Ico.SKULL, "Crypts:", Formatting.YELLOW, 31); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java index 87d9c6fe..ca208a48 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,7 +14,7 @@ import net.minecraft.util.Formatting; // this widget shows broad info about the current dungeon // opened/completed rooms, % of secrets found and time taken -public class DungeonServerWidget extends HudWidget { +public class DungeonServerWidget extends TabHudWidget { private static final MutableText TITLE = Text.literal("Dungeon Info").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); @@ -23,11 +24,11 @@ public class DungeonServerWidget extends HudWidget { private static final Pattern SECRET_PATTERN = Pattern.compile("Secrets Found: (?<secnum>.*)%"); public DungeonServerWidget() { - super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + super("Dungeon Info", TITLE, Formatting.DARK_PURPLE.getColorValue()); } @Override - public void updateContent() { + public void updateContent(List<Text> ignored) { this.addSimpleIcoText(Ico.NTAG, "Name:", Formatting.AQUA, 41); this.addSimpleIcoText(Ico.SIGN, "Rooms Visited:", Formatting.DARK_PURPLE, 42); this.addSimpleIcoText(Ico.SIGN, "Rooms Completed:", Formatting.LIGHT_PURPLE, 43); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java index 924289d8..7dce42b6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java @@ -8,21 +8,23 @@ import net.minecraft.text.MutableText; |
