diff options
| author | msg-programs <msgdoesstuff@gmail.com> | 2023-07-23 12:29:32 +0200 |
|---|---|---|
| committer | msg-programs <msgdoesstuff@gmail.com> | 2023-07-23 12:29:32 +0200 |
| commit | 384d9954aedefcee6f132d2bdadca11fca682bd7 (patch) | |
| tree | e1688bb368f381ccdd2993e0d3e2cae9e799bf83 /src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget | |
| parent | f9740d423146fafa83a85704580368cdc1131377 (diff) | |
| download | Skyblocker-384d9954aedefcee6f132d2bdadca11fca682bd7.tar.gz Skyblocker-384d9954aedefcee6f132d2bdadca11fca682bd7.tar.bz2 Skyblocker-384d9954aedefcee6f132d2bdadca11fca682bd7.zip | |
Massive refactor, see details
Instead of creating a new widget instance every frame, instantiate once and update content.
This means that every widget had to be updated to work like that.
This also necessitated some ugly hackery for the dwarven HUD.
Many other minor things like moving and renaming classes
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget')
46 files changed, 255 insertions, 105 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CommsWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CommsWidget.java index de90cf30..1cfa0cb2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CommsWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CommsWidget.java @@ -31,7 +31,10 @@ public class CommsWidget extends Widget { public CommsWidget() { super(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? @@ -55,33 +58,6 @@ public class CommsWidget extends Widget { } this.addComponent(pc); } - this.pack(); - } - - // for the dwarven hud - public CommsWidget(List<Commission> commissions, boolean isFancy) { - super(TITLE, Formatting.AQUA.getColorValue()); - for (Commission comm : commissions) { - - Text c = Text.literal(comm.commission()); - - float p = 100f; - if (!comm.progression().contains("DONE")) { - p = Float.parseFloat(comm.progression().substring(0, comm.progression().length() - 1)); - } - - Component comp; - if (isFancy) { - comp = new ProgressComponent(Ico.BOOK, c, p, pcntToCol(p)); - } else { - comp = new PlainTextComponent( - Text.literal(comm.commission() + ": ") - .append(Text.literal(comm.progression()).formatted(Formatting.GREEN))); - } - this.addComponent(comp); - } - this.pack(); - } private int pcntToCol(float pcnt) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ComposterWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ComposterWidget.java index 5922fcbc..1307b407 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ComposterWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ComposterWidget.java @@ -16,13 +16,15 @@ public class ComposterWidget extends Widget { public ComposterWidget() { super(TITLE, Formatting.GREEN.getColorValue()); + } + @Override + public void updateContent() { this.addSimpleIcoText(Ico.SAPLING, "Organic Matter:", Formatting.YELLOW, 48); this.addSimpleIcoText(Ico.FURNACE, "Fuel:", Formatting.BLUE, 49); this.addSimpleIcoText(Ico.CLOCK, "Time Left:", Formatting.RED, 50); this.addSimpleIcoText(Ico.COMPOSTER, "Stored Compost:", Formatting.DARK_GREEN, 51); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CookieWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CookieWidget.java index 48cb90bd..bf1d086f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CookieWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CookieWidget.java @@ -4,6 +4,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.Ico; +import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -19,19 +20,21 @@ public class CookieWidget extends Widget { private static final Pattern COOKIE_PATTERN = Pattern.compile(".*\\nCookie Buff\\n(?<buff>.*)\\n"); - public CookieWidget(String footertext) { + public CookieWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { + String footertext = PlayerListMgr.getFooter(); if (footertext == null || !footertext.contains("Cookie Buff")) { this.addComponent(new IcoTextComponent()); - this.pack(); return; } Matcher m = COOKIE_PATTERN.matcher(footertext); if (!m.find() || m.group("buff") == null) { this.addComponent(new IcoTextComponent()); - this.pack(); return; } @@ -42,7 +45,6 @@ public class CookieWidget extends Widget { Text cookie = Text.literal("Time Left: ").append(buff); this.addComponent(new IcoTextComponent(Ico.COOKIE, cookie)); } - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java index d56d3522..5b880514 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java @@ -1,5 +1,6 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget; +import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -18,10 +19,15 @@ public class DungeonBuffWidget extends Widget { public DungeonBuffWidget(String footertext) { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + + @Override + public void updateContent() { + + String footertext = PlayerListMgr.getFooter(); if (footertext == null || !footertext.contains("Dungeon Buffs")) { this.addComponent(new PlainTextComponent(Text.literal("No data").formatted(Formatting.GRAY))); - this.pack(); return; } @@ -30,7 +36,6 @@ public class DungeonBuffWidget extends Widget { if (!lines[1].startsWith("Blessing")) { this.addComponent(new PlainTextComponent(Text.literal("No buffs found!").formatted(Formatting.GRAY))); - this.pack(); return; } @@ -48,7 +53,6 @@ public class DungeonBuffWidget extends Widget { this.addComponent(new PlainTextComponent(Text.literal(line).styled(style -> style.withColor(color)))); } - this.pack(); } @SuppressWarnings("DataFlowIssue") diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java index 78e1aeae..6cdf946a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java @@ -24,7 +24,10 @@ public class DungeonDeathWidget extends Widget { public DungeonDeathWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { Matcher m = PlayerListMgr.regexAt(25, DEATH_PATTERN); if (m == null) { this.addComponent(new IcoTextComponent()); @@ -39,7 +42,6 @@ public class DungeonDeathWidget extends Widget { this.addSimpleIcoText(Ico.POTION, "Healing Done:", Formatting.RED, 27); this.addSimpleIcoText(Ico.NTAG, "Milestone:", Formatting.YELLOW, 28); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java index 9bb250f7..2ca617ee 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java @@ -17,7 +17,10 @@ public class DungeonDownedWidget extends Widget { public DungeonDownedWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { String down = PlayerListMgr.strAt(21); if (down == null) { this.addComponent(new IcoTextComponent()); @@ -36,7 +39,6 @@ public class DungeonDownedWidget extends Widget { this.addSimpleIcoText(Ico.CLOCK, "Time:", Formatting.GRAY, 22); this.addSimpleIcoText(Ico.POTION, "Revive:", Formatting.GRAY, 23); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java index 443cca55..e565bd8f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java @@ -45,10 +45,16 @@ public class DungeonPlayerWidget extends Widget { MSGS.add("More is better!"); } + private int player; + // title needs to be changeable here public DungeonPlayerWidget(int player) { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + this.player = player; + } + @Override + public void updateContent() { int start = 1 + (player - 1) * 4; if (PlayerListMgr.strAt(start) == null) { @@ -56,7 +62,6 @@ public class DungeonPlayerWidget extends Widget { IcoTextComponent noplayer = new IcoTextComponent(Ico.SIGN, Text.literal(MSGS.get(idx)).formatted(Formatting.GRAY)); this.addComponent(noplayer); - this.pack(); return; } Matcher m = PlayerListMgr.regexAt(start, PLAYER_PATTERN); @@ -94,6 +99,5 @@ public class DungeonPlayerWidget extends Widget { this.addSimpleIcoText(Ico.CLOCK, "Ult Cooldown:", Formatting.GOLD, start + 1); this.addSimpleIcoText(Ico.POTION, "Revives:", Formatting.DARK_PURPLE, start + 2); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java index 2529e876..ef765fc3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java @@ -26,7 +26,10 @@ public class DungeonPuzzleWidget extends Widget { public DungeonPuzzleWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { int pos = 48; while (pos < 60) { @@ -49,7 +52,6 @@ public class DungeonPuzzleWidget extends Widget { this.addComponent( new IcoTextComponent(Ico.BARRIER, Text.literal("No puzzles!").formatted(Formatting.GRAY))); } - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java index 93eb69de..a985b4b1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java @@ -14,11 +14,13 @@ public class DungeonSecretWidget extends Widget { public DungeonSecretWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { this.addSimpleIcoText(Ico.CHEST, "Secrets:", Formatting.YELLOW, 31); this.addSimpleIcoText(Ico.SKULL, "Crypts:", Formatting.YELLOW, 32); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java index 81b8f907..05b88127 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java @@ -24,7 +24,10 @@ public class DungeonServerWidget extends Widget { public DungeonServerWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + @Override + public void updateContent() { 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); @@ -40,8 +43,6 @@ public class DungeonServerWidget extends Widget { } this.addSimpleIcoText(Ico.CLOCK, "Time:", Formatting.GOLD, 45); - - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EffectWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EffectWidget.java index cd39a25a..718ea2d3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EffectWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EffectWidget.java @@ -1,6 +1,7 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.Ico; +import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.IcoFatTextComponent; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; import net.minecraft.text.MutableText; @@ -16,12 +17,17 @@ public class EffectWidget extends Widget { private static final MutableText TITLE = Text.literal("Effect Info").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); - public EffectWidget(String footertext) { + public EffectWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); + } + + @Override + public void updateContent() { + + String footertext = PlayerListMgr.getFooter(); if (footertext == null || !footertext.contains("Active Effects")) { this.addComponent(new IcoTextComponent()); - this.pack(); return; } @@ -29,7 +35,6 @@ public class EffectWidget extends Widget { String[] lines = footertext.split("Active Effects")[1].split("\n"); if (lines.length < 2) { this.addComponent(new IcoTextComponent()); - this.pack(); return; } @@ -47,7 +52,6 @@ public class EffectWidget extends Widget { int idx = number.indexOf(' '); if (idx == -1 || lines.length < 4) { this.addComponent(new IcoFatTextComponent()); - this.pack(); return; } number = number.substring(0, idx); @@ -58,7 +62,6 @@ public class EffectWidget extends Widget { Text.literal(lines[3]).formatted(Formatting.AQUA)); this.addComponent(iftc); } - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ElectionWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ElectionWidget.java index ed07982c..0f858fb6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ElectionWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ElectionWidget.java @@ -48,14 +48,16 @@ public class ElectionWidget extends Widget { public ElectionWidget() { super(TITLE, Formatting.YELLOW.getColorValue()); + } + @Override + public void updateContent() { String status = PlayerListMgr.strAt(76); if (status == null) { this.addComponent(new IcoTextComponent()); this.addComponent(new IcoTextComponent()); this.addComponent(new IcoTextComponent()); this.addComponent(new IcoTextComponent()); - this.pack(); return; } @@ -97,7 +99,6 @@ public class ElectionWidget extends Widget { } } } - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EmptyWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EmptyWidget.java index 61da439a..0e85003f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EmptyWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EmptyWidget.java @@ -17,12 +17,10 @@ public class EmptyWidget extends Widget { } @Override - public void update() { - super.update(); + public void updateContent() { Text info = Text.of("No info for this area!"); PlainTextComponent inf = new PlainTextComponent(info); this.addComponent(inf); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EssenceWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EssenceWidget.java index fc0780e1..c503d89f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EssenceWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EssenceWidget.java @@ -19,6 +19,10 @@ public class EssenceWidget extends Widget { public EssenceWidget() { super(TITLE, Formatting.DARK_AQUA.getColorValue()); + } + + @Override + public void updateContent() { wither = Widget.simpleEntryText(46, "Wither:", Formatting.DARK_PURPLE); spider = Widget.simpleEntryText(47, "Spider:", Formatting.DARK_PURPLE); undead = Widget.simpleEntryText(48, "Undead:", Formatting.DARK_PURPLE); @@ -39,6 +43,5 @@ public class EssenceWidget extends Widget { tc.addToCell(1, 2, new IcoTextComponent(Ico.ICE, ice)); tc.addToCell(1, 3, new IcoTextComponent(Ico.REDSTONE, crimson)); this.addComponent(tc); - this.pack(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EventWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EventWidget.java index 1b46e621..b3563f1b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EventWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EventWidget.java @@ -11,9 +11,15 @@ import net.minecraft.util.Formatting; public class EventWidget extends Widget { |
