diff options
author | msg-programs <msgdoesstuff@gmail.com> | 2023-05-06 11:33:24 +0200 |
---|---|---|
committer | msg-programs <msgdoesstuff@gmail.com> | 2023-05-06 11:33:24 +0200 |
commit | cff839b60cc2d5c09defcf7b4608022ebc1e4fdb (patch) | |
tree | 212917a1d3c9e433f78e5ae794b26281e610c7ab /src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens | |
parent | 763507b427d151c77a3c5a1b8dfe03f0a4a059e1 (diff) | |
download | Skyblocker-cff839b60cc2d5c09defcf7b4608022ebc1e4fdb.tar.gz Skyblocker-cff839b60cc2d5c09defcf7b4608022ebc1e4fdb.tar.bz2 Skyblocker-cff839b60cc2d5c09defcf7b4608022ebc1e4fdb.zip |
Move logic to find the player's location to it's own class
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java | 179 |
1 files changed, 56 insertions, 123 deletions
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 index f5a620bf..f60af79d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java @@ -7,7 +7,7 @@ import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud; import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.genericInfo.*; import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.main.*; import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.playerList.*; -import me.xmrvizzy.skyblocker.skyblock.tabhud.util.StrMan; +import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerLocator; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.Widget; import net.minecraft.client.network.PlayerListEntry; @@ -16,26 +16,6 @@ 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; @@ -44,6 +24,61 @@ public class Screen { this.h = h; } + public static Screen getCorrect(int w, int h, List<PlayerListEntry> ple, Text footer) { + if (TabHud.genericTgl.isPressed()) { + return Screen.correctGenericScrn(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 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 correctGenericScrn(int w, int h, List<PlayerListEntry> list, Text footer) { + return switch (PlayerLocator.getPlayerLocation()) { + case GARDEN -> new GardenInfoScreen(w, h, list, footer); // ok + default -> new GenericInfoScreen(w, h, list, footer); // ok + }; + } + + + private static Screen correctPlayerScrn(int w, int h, List<PlayerListEntry> list, Text footer) { + return switch (PlayerLocator.getPlayerLocation()) { + 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 (PlayerLocator.getPlayerLocation()) { + 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); // ok + case CRIMSON_ISLE -> new CrimsonIsleScreen(w, h, list, footer); // ??? + case GARDEN -> new GardenScreen(w, h, list, footer); + default -> new GenericServerScreen(w, h, list, footer); // ok + }; + } + public void addWidget(Widget w) { widgets.add(w); } @@ -157,106 +192,4 @@ public class Screen { } w.setX(xCor); } - - public static Screen getCorrect(int w, int h, List<PlayerListEntry> ple, Text footer) { - if (TabHud.genericTgl.isPressed()) { - return Screen.correctGenericScrn(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 correctGenericScrn(int w, int h, List<PlayerListEntry> list, Text footer) { - return switch (getScreenType(list)) { - case GARDEN -> new GardenInfoScreen(w, h, list, footer); // ok - default -> new GenericInfoScreen(w, h, list, footer); // ok - }; - } - - - 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); // ok - case CRIMSON_ISLE -> new CrimsonIsleScreen(w, h, list, footer); // ??? - case GARDEN -> new GardenScreen(w, h, list, footer); - default -> new GenericServerScreen(w, h, list, footer); // ok - }; - } - } |