aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2024-05-07 23:10:15 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-12-12 18:19:04 +0100
commitdcba939382628279ebce2cb0dc4b4a0ce8ee2f2f (patch)
tree994536718c3e9110f3e2044ca21aa2342ea4d872 /src/main/java
parent152b6c6ce8331567d37e0d88721b33eef495031e (diff)
downloadSkyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.tar.gz
Skyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.tar.bz2
Skyblocker-dcba939382628279ebce2cb0dc4b4a0ce8ee2f2f.zip
progress porting all widgets
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java48
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CommsWidget.java45
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ElectionWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EmptyWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ErrorWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EssenceWidget.java44
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EventWidget.java24
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/FireSaleWidget.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ForgeWidget.java36
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/HudWidget.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/TabHudWidget.java2
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;