aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens
diff options
context:
space:
mode:
authormsg-programs <msgdoesstuff@gmail.com>2023-04-02 14:58:42 +0200
committermsg-programs <msgdoesstuff@gmail.com>2023-04-02 14:58:42 +0200
commit9cbce39d68c1c766e20819101fbb803ad05e8fdc (patch)
tree164b9f11c4c572bdd632aa16b53fc8a9634f7331 /src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens
parent3074075c1561163606f441f1a8f582b79082c311 (diff)
downloadSkyblocker-9cbce39d68c1c766e20819101fbb803ad05e8fdc.tar.gz
Skyblocker-9cbce39d68c1c766e20819101fbb803ad05e8fdc.tar.bz2
Skyblocker-9cbce39d68c1c766e20819101fbb803ad05e8fdc.zip
Merging SkyHyTab into Skyblocker: Initial commit
Needs cleanup
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonHubScreen.java24
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonPlayerScreen.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonScreen.java37
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/EmptyScreen.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/FarmingServerScreen.java23
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GardenScreen.java23
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericInfoScreen.java51
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericServerScreen.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestPlayerScreen.java23
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestServerScreen.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomePlayerScreen.java22
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomeServerScreen.java24
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HubServerScreen.java23
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/MineServerScreen.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/ParkServerScreen.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/PlayerListScreen.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java250
17 files changed, 655 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonHubScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonHubScreen.java
new file mode 100644
index 00000000..4bd48f89
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonHubScreen.java
@@ -0,0 +1,24 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.EssenceWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class DungeonHubScreen extends Screen{
+
+ public DungeonHubScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ ServerWidget sw = new ServerWidget(list);
+ EssenceWidget ew = new EssenceWidget(list);
+ centerW(sw);
+ centerW(ew);
+ stackWidgetsH(sw, ew);
+ this.addWidget(ew);
+ this.addWidget(sw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonPlayerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonPlayerScreen.java
new file mode 100644
index 00000000..ce87a035
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonPlayerScreen.java
@@ -0,0 +1,30 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonPlayerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class DungeonPlayerScreen extends Screen {
+
+ public DungeonPlayerScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ DungeonPlayerWidget dpw1 = new DungeonPlayerWidget(ple, 1);
+ DungeonPlayerWidget dpw2 = new DungeonPlayerWidget(ple, 2);
+ DungeonPlayerWidget dpw3 = new DungeonPlayerWidget(ple, 3);
+ DungeonPlayerWidget dpw4 = new DungeonPlayerWidget(ple, 4);
+ DungeonPlayerWidget dpw5 = new DungeonPlayerWidget(ple, 5);
+
+ offCenterL(dpw1);
+ offCenterL(dpw2);
+ offCenterL(dpw3);
+ offCenterR(dpw4);
+ offCenterR(dpw5);
+ stackWidgetsH(dpw1, dpw2, dpw3);
+ stackWidgetsH(dpw4, dpw5);
+ addWidgets(dpw1, dpw2, dpw3, dpw4, dpw5);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonScreen.java
new file mode 100644
index 00000000..bb80b01b
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/DungeonScreen.java
@@ -0,0 +1,37 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonDeathWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonDownedWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonPuzzleWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonSecretWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class DungeonScreen extends Screen {
+
+ public DungeonScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ DungeonDownedWidget ddow = new DungeonDownedWidget(ple);
+ DungeonDeathWidget ddew = new DungeonDeathWidget(ple);
+ DungeonSecretWidget dscw = new DungeonSecretWidget(ple);
+ DungeonServerWidget dsrw = new DungeonServerWidget(ple);
+ DungeonPuzzleWidget dpuw = new DungeonPuzzleWidget(ple);
+
+ offCenterL(ddow);
+ offCenterL(ddew);
+ offCenterL(dscw);
+ offCenterR(dsrw);
+ offCenterR(dpuw);
+
+ stackWidgetsH(ddow, ddew, dscw);
+ stackWidgetsH(dsrw, dpuw);
+
+ addWidgets(ddow, ddew, dscw, dsrw, dpuw);
+
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/EmptyScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/EmptyScreen.java
new file mode 100644
index 00000000..07162834
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/EmptyScreen.java
@@ -0,0 +1,19 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.EmptyWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class EmptyScreen extends Screen {
+
+ public EmptyScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ EmptyWidget ew = new EmptyWidget(ple);
+ this.center(ew);
+ this.addWidget(ew);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/FarmingServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/FarmingServerScreen.java
new file mode 100644
index 00000000..f66638a9
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/FarmingServerScreen.java
@@ -0,0 +1,23 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ServerWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.TrapperWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class FarmingServerScreen extends Screen{
+
+ public FarmingServerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ ServerWidget sw = new ServerWidget(list);
+ TrapperWidget tw = new TrapperWidget(list);
+ centerW(sw);
+ centerW(tw);
+ stackWidgetsH(sw, tw);
+ this.addWidgets(tw, sw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GardenScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GardenScreen.java
new file mode 100644
index 00000000..30f4bbc3
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GardenScreen.java
@@ -0,0 +1,23 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ComposterWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.GardenServerWidget;
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class GardenScreen extends Screen{
+
+ public GardenScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ GardenServerWidget gsw = new GardenServerWidget(ple);
+ ComposterWidget cw = new ComposterWidget(ple);
+
+ this.stackWidgetsH(gsw, cw);
+ this.centerW(gsw);
+ this.centerW(cw);
+ this.addWidgets(gsw, cw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericInfoScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericInfoScreen.java
new file mode 100644
index 00000000..01b159e2
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericInfoScreen.java
@@ -0,0 +1,51 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.CookieWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.EffectWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ElectionWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.EventWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ProfileWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.SkillsWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.UpgradeWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class GenericInfoScreen extends Screen {
+
+ public GenericInfoScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+
+ String f = footer.getString();
+
+ SkillsWidget sw = new SkillsWidget(ple);
+ EventWidget evw = new EventWidget(ple);
+ UpgradeWidget uw = new UpgradeWidget(f);
+
+ ProfileWidget pw = new ProfileWidget(ple);
+ EffectWidget efw = new EffectWidget(f);
+
+ ElectionWidget elw = new ElectionWidget(ple);
+ CookieWidget cw = new CookieWidget(f);
+
+ // goofy ahh layout code incoming
+ this.stackWidgetsH(sw, evw, uw);
+ this.stackWidgetsH(pw, efw);
+ this.stackWidgetsH(elw, cw);
+
+ this.centerW(sw);
+ this.centerW(evw);
+ this.centerW(uw);
+
+ this.collideAgainstL(pw, sw, evw, uw);
+ this.collideAgainstL(efw, sw, evw, uw);
+
+ this.collideAgainstR(elw, sw, evw, uw);
+ this.collideAgainstR(cw, sw, evw, uw);
+
+ this.addWidgets(sw, evw, uw, pw, efw, elw, cw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericServerScreen.java
new file mode 100644
index 00000000..fee4a9f8
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GenericServerScreen.java
@@ -0,0 +1,19 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class GenericServerScreen extends Screen {
+
+ public GenericServerScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ ServerWidget sw = new ServerWidget(ple);
+ this.center(sw);
+ this.addWidget(sw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestPlayerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestPlayerScreen.java
new file mode 100644
index 00000000..4647da7a
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestPlayerScreen.java
@@ -0,0 +1,23 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.IslandGuestsWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.IslandOwnersWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class GuestPlayerScreen extends Screen{
+
+ public GuestPlayerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ IslandGuestsWidget igw = new IslandGuestsWidget(list);
+ IslandOwnersWidget iow = new IslandOwnersWidget(list);
+ this.centerH(iow);
+ this.centerH(igw);
+ this.stackWidgetsW(igw, iow);
+ this.addWidgets(iow, igw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestServerScreen.java
new file mode 100644
index 00000000..03e22292
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/GuestServerScreen.java
@@ -0,0 +1,19 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.GuestServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class GuestServerScreen extends Screen{
+
+ public GuestServerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ GuestServerWidget gsw = new GuestServerWidget(list);
+ this.center(gsw);
+ this.addWidget(gsw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomePlayerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomePlayerScreen.java
new file mode 100644
index 00000000..506f773f
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomePlayerScreen.java
@@ -0,0 +1,22 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.IslandGuestsWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.IslandSelfWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class HomePlayerScreen extends Screen {
+
+ public HomePlayerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ IslandSelfWidget isw = new IslandSelfWidget(list);
+ IslandGuestsWidget igw = new IslandGuestsWidget(list);
+ this.centerH(isw);
+ this.centerH(igw);
+ this.stackWidgetsW(isw, igw);
+ this.addWidgets(isw, igw);
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomeServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomeServerScreen.java
new file mode 100644
index 00000000..6d67f829
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HomeServerScreen.java
@@ -0,0 +1,24 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.IslandServerWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.MinionWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class HomeServerScreen extends Screen {
+
+ public HomeServerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+
+ IslandServerWidget isw = new IslandServerWidget(list);
+ MinionWidget mw = new MinionWidget(list);
+ this.centerH(isw);
+ this.centerH(mw);
+ this.stackWidgetsW(isw, mw);
+ this.addWidgets(isw, mw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HubServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HubServerScreen.java
new file mode 100644
index 00000000..15ac3183
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/HubServerScreen.java
@@ -0,0 +1,23 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.FireSaleWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class HubServerScreen extends Screen {
+
+ public HubServerScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ ServerWidget sw = new ServerWidget(ple);
+ FireSaleWidget fsw = new FireSaleWidget(ple);
+ this.centerW(sw);
+ this.centerW(fsw);
+ this.stackWidgetsH(sw, fsw);
+ this.addWidgets(sw, fsw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/MineServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/MineServerScreen.java
new file mode 100644
index 00000000..0e581852
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/MineServerScreen.java
@@ -0,0 +1,30 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.CommsWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ForgeWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.PowderWidget;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class MineServerScreen extends Screen{
+
+ public MineServerScreen(int w, int h, List<PlayerListEntry> list, Text footer) {
+ super(w, h);
+ ServerWidget sw = new ServerWidget(list);
+ PowderWidget pw = new PowderWidget(list);
+ CommsWidget cw = new CommsWidget(list);
+ ForgeWidget fw = new ForgeWidget(list);
+ stackWidgetsH(sw, pw, cw);
+ centerH(fw);
+ offCenterL(sw);
+ offCenterL(pw);
+ offCenterL(cw);
+ offCenterR(fw);
+ this.addWidgets(fw, cw, pw, sw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/ParkServerScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/ParkServerScreen.java
new file mode 100644
index 00000000..bb601251
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/ParkServerScreen.java
@@ -0,0 +1,19 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ParkServerWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class ParkServerScreen extends Screen{
+
+ public ParkServerScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ ParkServerWidget sw = new ParkServerWidget(ple);
+ this.center(sw);
+ this.addWidget(sw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/PlayerListScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/PlayerListScreen.java
new file mode 100644
index 00000000..14adc322
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/PlayerListScreen.java
@@ -0,0 +1,19 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.PlayerListWidget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.text.Text;
+
+public class PlayerListScreen extends Screen {
+
+ public PlayerListScreen(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ super(w, h);
+ PlayerListWidget plw = new PlayerListWidget(ple);
+ this.center(plw);
+ this.addWidget(plw);
+ }
+
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java
new file mode 100644
index 00000000..8e99698b
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java
@@ -0,0 +1,250 @@
+package me.xmrvizzy.skyblocker.skyblock.tabhud.screens;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.util.StrMan;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.Widget;
+
+import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.text.Text;
+
+public class Screen {
+
+ private enum ScreenType {
+ DUNGEON,
+ GUEST_ISLAND,
+ HOME_ISLAND,
+ CRIMSON_ISLE,
+ DUNGEON_HUB,
+ FARMING_ISLAND,
+ PARK,
+ DWARVEN_MINES,
+ CRYSTAL_HOLLOWS,
+ END,
+ GOLD_MINE,
+ DEEP_CAVERNS,
+ HUB,
+ SPIDER_DEN,
+ JERRY,
+ GARDEN,
+ NONE
+ }
+
+ private ArrayList<Widget> widgets = new ArrayList<>();
+ private int w, h;
+
+ public Screen(int w, int h) {
+ this.w = w;
+ this.h = h;
+ }
+
+ public void addWidget(Widget w) {
+ widgets.add(w);
+ }
+
+ public void addWidgets(Widget... ws) {
+ for (Widget w : ws) {
+ widgets.add(w);
+ }
+ }
+
+ public void render(MatrixStack ms) {
+ for (Widget w : widgets) {
+ w.render(ms);
+ }
+ }
+
+ public void stackWidgetsH(Widget... list) {
+ int compHeight = -5;
+ for (Widget wid : list) {
+ compHeight += wid.getHeight() + 5;
+ }
+
+ int y = (h - compHeight) / 2;
+ for (Widget wid : list) {
+ wid.setY(y);
+ y += wid.getHeight() + 5;
+ }
+ }
+
+ public void stackWidgetsW(Widget... list) {
+ // TODO not centered
+ int compWidth = -5;
+ for (Widget wid : list) {
+ compWidth += wid.getWidth() + 5;
+ }
+
+ int x = (w - compWidth) / 2;
+ for (Widget wid : list) {
+ wid.setX(x);
+ x += wid.getWidth() + 5;
+ }
+ }
+
+ public void centerH(Widget wid) {
+ wid.setY((h - wid.getHeight()) / 2);
+ }
+
+ public void centerW(Widget wid) {
+ wid.setX((w - wid.getWidth()) / 2);
+ }
+
+ public void center(Widget wid) {
+ this.centerH(wid);
+ this.centerW(wid);
+ }
+
+ public void offCenterL(Widget wid) {
+ int wHalf = this.w / 2;
+ wid.setX(wHalf - 3 - wid.getWidth());
+ }
+
+ public void offCenterR(Widget wid) {
+ int wHalf = this.w / 2;
+ wid.setX(wHalf + 3);
+ }
+
+ public void collideAgainstL(Widget w, Widget... others) {
+ int yMin = w.getY();
+ int yMax = w.getY() + w.getHeight();
+
+ int xCor = this.w / 2;
+
+ // assume others to be sorted top-bottom.
+ for (Widget other : others) {
+ if (other.getY() + other.getHeight() + 5 < yMin) {
+ // too high, next one
+ continue;
+ }
+
+ if (other.getY() - 5 > yMax) {
+ // too low, no more collisions possible
+ break;
+ }
+
+ int xPos = other.getX() - 5 - w.getWidth();
+ xCor = Math.min(xCor, xPos);
+ }
+ w.setX(xCor);
+ }
+
+ public void collideAgainstR(Widget w, Widget... others) {
+ int yMin = w.getY();
+ int yMax = w.getY() + w.getHeight();
+
+ int xCor = this.w / 2;
+
+ // assume others to be sorted top-bottom.
+ for (Widget other : others) {
+ if (other.getY() + other.getHeight() + 5 < yMin) {
+ // too high, next one
+ continue;
+ }
+
+ if (other.getY() - 5 > yMax) {
+ // too low, no more collisions possible
+ break;
+ }
+
+ int xPos = other.getX() + other.getWidth() + 5;
+ xCor = Math.max(xCor, xPos);
+ }
+ w.setX(xCor);
+ }
+
+ public static Screen getCorrect(int w, int h, List<PlayerListEntry> ple, Text footer) {
+ if (TabHud.genericTgl.isPressed()) {
+ return new GenericInfoScreen(w, h, ple, footer);
+ // } else if (TabHud.mapTgl.isPressed()) {
+ // return Screen.correctMapScrn(w, h, ple, footer);
+ } else if (TabHud.playerTgl.isPressed()) {
+ return Screen.correctPlayerScrn(w, h, ple, footer);
+ } else {
+ return Screen.correctMainScrn(w, h, ple, footer);
+ }
+ }
+
+ private static ScreenType getScreenType(List<PlayerListEntry> ple) {
+ String cat2Name = StrMan.strAt(ple, 40);
+
+ if (cat2Name.contains("Dungeon Stats")) {
+ return ScreenType.DUNGEON;
+ }
+
+ String areaDesciptor = StrMan.strAt(ple, 41).substring(6);
+ switch (areaDesciptor) {
+ case "Private Island":
+ if (ple.get(44).getDisplayName().getString().endsWith("Guest")) {
+ return ScreenType.GUEST_ISLAND;
+ } else {
+ return ScreenType.HOME_ISLAND;
+ }
+ case "Crimson Isle":
+ return ScreenType.CRIMSON_ISLE;
+ case "Dungeon Hub":
+ return ScreenType.DUNGEON_HUB;
+ case "The Farming Islands":
+ return ScreenType.FARMING_ISLAND;
+ case "The Park":
+ return ScreenType.PARK;
+ case "Dwarven Mines":
+ return ScreenType.DWARVEN_MINES;
+ case "Crystal Hollows":
+ return ScreenType.CRYSTAL_HOLLOWS;
+ case "The End":
+ return ScreenType.END;
+ case "Gold Mine":
+ return ScreenType.GOLD_MINE;
+ case "Deep Caverns":
+ return ScreenType.DEEP_CAVERNS;
+ case "Hub":
+ return ScreenType.HUB;
+ case "Spider's Den":
+ return ScreenType.SPIDER_DEN;
+ case "Jerry's Workshop":
+ return ScreenType.JERRY;
+ case "Garden":
+ return ScreenType.GARDEN;
+ default:
+ return ScreenType.NONE;
+ }
+ }
+
+ // private static Screen correctMapScrn(int w, int h, List<PlayerListEntry> list, Text footer) {
+ // // return switch (getScreenType(list)) {
+ // // case CRYSTAL_HOLLOWS -> null;
+ // // case DUNGEON -> null;
+ // // default -> new EmptyScreen(w, h, list, footer);
+ // // };
+ // return new EmptyScreen(w, h, list, footer);
+ // }
+
+ private static Screen correctPlayerScrn(int w, int h, List<PlayerListEntry> list, Text footer) {
+ return switch (getScreenType(list)) {
+ case GUEST_ISLAND -> new GuestPlayerScreen(w, h, list, footer); // ok
+ case HOME_ISLAND -> new HomePlayerScreen(w, h, list, footer); // ok
+ case DUNGEON -> new DungeonPlayerScreen(w, h, list, footer);
+ default -> new PlayerListScreen(w, h, list, footer); // ok
+ };
+ }
+
+ private static Screen correctMainScrn(int w, int h, List<PlayerListEntry> list, Text footer) {
+ return switch (getScreenType(list)) {
+ case PARK -> new ParkServerScreen(w, h, list, footer); // ok
+ case HUB -> new HubServerScreen(w, h, list, footer); // ok
+ case HOME_ISLAND -> new HomeServerScreen(w, h, list, footer); // ok
+ case GUEST_ISLAND -> new GuestServerScreen(w, h, list, footer); // ok
+ case CRYSTAL_HOLLOWS, DWARVEN_MINES -> new MineServerScreen(w, h, list, footer);
+ case FARMING_ISLAND -> new FarmingServerScreen(w, h, list, footer); // ok
+ case DUNGEON_HUB -> new DungeonHubScreen(w, h, list, footer); // ok
+ case DUNGEON -> new DungeonScreen(w, h, list, footer);
+ case CRIMSON_ISLE -> null; // TODO
+ case GARDEN -> new GardenScreen(w, h, list, footer);
+ default -> new GenericServerScreen(w, h, list, footer); // ok
+ };
+ }
+
+}