aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud
diff options
context:
space:
mode:
authorYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
committerYasin <a.piri@hotmail.de>2023-10-09 12:58:02 +0200
commitbd3f0329d0e391bd84b5f9e3ff207d9dd9815853 (patch)
tree2fd1d1ef625f57acc2e4916c967d8d2393844798 /src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud
parent2315b90da8117f28f66348927afdb621ee4fc815 (diff)
downloadSkyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.gz
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.tar.bz2
Skyblocker-bd3f0329d0e391bd84b5f9e3ff207d9dd9815853.zip
new pr because fixing merge conflict would take too long
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/TabHud.java39
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java179
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java144
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java83
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java153
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PipelineStage.java14
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java94
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java114
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/Ico.java60
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java172
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerLocator.java87
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/ScreenConst.java13
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java37
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CommsWidget.java63
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ComposterWidget.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CookieWidget.java50
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java68
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java47
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java44
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPlayerWidget.java103
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonPuzzleWidget.java57
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java26
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonServerWidget.java48
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EffectWidget.java67
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ElectionWidget.java104
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ErrorWidget.java32
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EssenceWidget.java47
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/EventWidget.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/FireSaleWidget.java68
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ForgeWidget.java81
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/GardenServerWidget.java54
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/GardenSkillsWidget.java80
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/GardenVisitorsWidget.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/GuestServerWidget.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandGuestsWidget.java47
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandOwnersWidget.java66
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandSelfWidget.java43
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/IslandServerWidget.java32
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java62
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/MinionWidget.java151
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ParkServerWidget.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java71
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PowderWidget.java29
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ProfileWidget.java28
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/QuestWidget.java33
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ReputationWidget.java69
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/ServerWidget.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/SkillsWidget.java78
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/TrapperWidget.java25
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/UpgradeWidget.java51
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/VolcanoWidget.java59
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java216
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java31
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java45
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java40
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java39
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java69
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java58
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/hud/HudCommsWidget.java73
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/AdvertisementWidget.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/GoodToKnowWidget.java69
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/RiftProfileWidget.java21
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/RiftProgressWidget.java123
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/RiftServerInfoWidget.java27
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/RiftStatsWidget.java43
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/rift/ShenWidget.java22
67 files changed, 0 insertions, 4198 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/TabHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/TabHud.java
deleted file mode 100644
index 8f18e367..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/TabHud.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.tabhud;
-
-import org.lwjgl.glfw.GLFW;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
-import net.minecraft.client.option.KeyBinding;
-import net.minecraft.client.util.InputUtil;
-
-public class TabHud {
-
- public static KeyBinding toggleB;
- public static KeyBinding toggleA;
- // public static KeyBinding mapTgl;
- public static KeyBinding defaultTgl;
-
- public static final Logger LOGGER = LoggerFactory.getLogger("Skyblocker Tab HUD");
-
- public static void init() {
-
- toggleB = KeyBindingHelper.registerKeyBinding(
- new KeyBinding("key.skyblocker.toggleB",
- InputUtil.Type.KEYSYM,
- GLFW.GLFW_KEY_B,
- "key.categories.skyblocker"));
- toggleA = KeyBindingHelper.registerKeyBinding(
- new KeyBinding("key.skyblocker.toggleA",
- InputUtil.Type.KEYSYM,
- GLFW.GLFW_KEY_N,
- "key.categories.skyblocker"));
- defaultTgl = KeyBindingHelper.registerKeyBinding(
- new KeyBinding("key.skyblocker.defaultTgl",
- InputUtil.Type.KEYSYM,
- GLFW.GLFW_KEY_M,
- "key.categories.skyblocker"));
-
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java
deleted file mode 100644
index f02c7dc6..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder;
-
-import java.io.BufferedReader;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.NoSuchElementException;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.AlignStage;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.CollideStage;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PipelineStage;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PlaceStage;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.StackStage;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.DungeonPlayerWidget;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.ErrorWidget;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.EventWidget;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.Widget;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.util.Identifier;
-
-public class ScreenBuilder {
-
- // layout pipeline
- private final ArrayList<PipelineStage> layoutPipeline = new ArrayList<>();
-
- // all widget instances this builder knows
- private final ArrayList<Widget> instances = new ArrayList<>();
- // maps alias -> widget instance
- private final HashMap<String, Widget> objectMap = new HashMap<>();
-
- private final String builderName;
-
- /**
- * Create a ScreenBuilder from a json.
- */
- public ScreenBuilder(Identifier ident) {
-
- try (BufferedReader reader = MinecraftClient.getInstance().getResourceManager().openAsReader(ident)) {
- this.builderName = ident.getPath();
-
- JsonObject json = JsonParser.parseReader(reader).getAsJsonObject();
-
- JsonArray widgets = json.getAsJsonArray("widgets");
- JsonArray layout = json.getAsJsonArray("layout");
-
- for (JsonElement w : widgets) {
- JsonObject widget = w.getAsJsonObject();
- String name = widget.get("name").getAsString();
- String alias = widget.get("alias").getAsString();
-
- Widget wid = instanceFrom(name, widget);
- objectMap.put(alias, wid);
- instances.add(wid);
- }
-
- for (JsonElement l : layout) {
- PipelineStage ps = createStage(l.getAsJsonObject());
- layoutPipeline.add(ps);
- }
- } catch (Exception ex) {
- // rethrow as unchecked exception so that I don't have to catch anything in the ScreenMaster
- throw new IllegalStateException("Failed to load file " + ident + ". Reason: " + ex.getMessage());
- }
- }
-
- /**
- * Try to find a class in the widget package that has the supplied name and
- * call it's constructor. Manual work is required if the class has arguments.
- */
- public Widget instanceFrom(String name, JsonObject widget) {
-
- // do widgets that require args the normal way
- JsonElement arg;
- switch (name) {
- case "EventWidget" -> {
- return new EventWidget(widget.get("inGarden").getAsBoolean());
- }
- case "DungeonPlayerWidget" -> {
- return new DungeonPlayerWidget(widget.get("player").getAsInt());
- }
- case "ErrorWidget" -> {
- arg = widget.get("text");
- if (arg == null) {
- return new ErrorWidget();
- } else {
- return new ErrorWidget(arg.getAsString());
- }
- }
- case "Widget" ->
- // clown case sanity check. don't instantiate the superclass >:|
- throw new NoSuchElementException(builderName + "[ERROR]: No such Widget type \"Widget\"!");
- }
-
- // reflect something together for the "normal" ones.
-
- // list all packages that might contain widget classes
- // using Package isn't reliable, as some classes might not be loaded yet,
- // causing the packages not to show.
- String packbase = "me.xmrvizzy.skyblocker.skyblock.tabhud.widget";
- String[] packnames = {
- packbase,
- packbase + ".rift"
- };
-
- // construct the full class name and try to load.
- Class<?> clazz = null;
- for (String pn : packnames) {
- try {
- clazz = Class.forName(pn + "." + name);
- } catch (LinkageError | ClassNotFoundException ex) {
- continue;
- }
- }
-
- // load failed.
- if (clazz == null) {
- throw new NoSuchElementException(builderName + "/[ERROR]: No such Widget type \"" + name + "\"!");
- }
-
- // return instance of that class.
- try {
- Constructor<?> ctor = clazz.getConstructor();
- return (Widget) ctor.newInstance();
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException
- | IllegalArgumentException | InvocationTargetException | SecurityException ex) {
- throw new IllegalStateException(builderName + "/" + name + ": Internal error...");
- }
- }
-
- /**
- * Create a PipelineStage from a json object.
- */
- public PipelineStage createStage(JsonObject descr) throws NoSuchElementException {
-
- String op = descr.get("op").getAsString();
-
- return switch (op) {
- case "place" -> new PlaceStage(this, descr);
- case "stack" -> new StackStage(this, descr);
- case "align" -> new AlignStage(this, descr);
- case "collideAgainst" -> new CollideStage(this, descr);
- default -> throw new NoSuchElementException("No such op " + op + " as requested by " + this.builderName);
- };
- }
-
- /**
- * Lookup Widget instance from alias name
- */
- public Widget getInstance(String name) {
- if (!this.objectMap.containsKey(name)) {
- throw new NoSuchElementException("No widget with alias " + name + " in screen " + builderName);
- }
- return this.objectMap.get(name);
- }
-
- /**
- * Run the pipeline to build a Screen
- */
- public void run(DrawContext context, int screenW, int screenH) {
-
- for (Widget w : instances) {
- w.update();
- }
- for (PipelineStage ps : layoutPipeline) {
- ps.run(screenW, screenH);
- }
- for (Widget w : instances) {
- w.render(context);
- }
- }
-
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java
deleted file mode 100644
index 194ab3d4..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder;
-
-import java.io.BufferedReader;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud;
-import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerLocator;
-import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
-import net.fabricmc.fabric.api.resource.ResourcePackActivationType;
-import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
-import net.fabricmc.loader.api.FabricLoader;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.resource.Resource;
-import net.minecraft.resource.ResourceManager;
-import net.minecraft.resource.ResourceType;
-import net.minecraft.util.Identifier;
-
-public class ScreenMaster {
-
- private static final Logger LOGGER = LoggerFactory.getLogger("skyblocker");
-
- private static final int VERSION = 1;
-
- private static final HashMap<String, ScreenBuilder> standardMap = new HashMap<>();
- private static final HashMap<String, ScreenBuilder> screenAMap = new HashMap<>();
- private static final HashMap<String, ScreenBuilder> screenBMap = new HashMap<>();
-
- /**
- * Load a screen mapping from an identifier
- */
- public static void load(Identifier ident) {
-
- String path = ident.getPath();
- String[] parts = path.split("/");
- String screenType = parts[parts.length - 2];
- String location = parts[parts.length - 1];
- location = location.replace(".json", "");
-
- ScreenBuilder sb = new ScreenBuilder(ident);
- switch (screenType) {
- case "standard" -> standardMap.put(location, sb);
- case "screen_a" -> screenAMap.put(location, sb);
- case "screen_b" -> screenBMap.put(location, sb);
- }
- }
-
- /**
- * Top level render method.
- * Calls the appropriate ScreenBuilder with the screen's dimensions
- */
- public static void render(DrawContext context, int w, int h) {
- String location = PlayerLocator.getPlayerLocation().internal;
- HashMap<String, ScreenBuilder> lookup;
- if (TabHud.toggleA.isPressed()) {
- lookup = screenAMap;
- } else if (TabHud.toggleB.isPressed()) {
- lookup = screenBMap;
- } else {
- lookup = standardMap;
- }
-
- ScreenBuilder sb = lookup.get(location);
- // seems suboptimal, maybe load the default first into all possible values
- // and then override?
- if (sb == null) {
- sb = lookup.get("default");
- }
-
- sb.run(context, w, h);
-
- }
-
- public static void init() {
-
- // WHY MUST IT ALWAYS BE SUCH NESTED GARBAGE MINECRAFT KEEP THAT IN DFU FFS
-
- FabricLoader.getInstance()
- .getModContainer("skyblocker")
- .ifPresent(container -> ResourceManagerHelper.registerBuiltinResourcePack(
- new Identifier("skyblocker", "top_aligned"),
- container,
- ResourcePackActivationType.NORMAL));
-
- ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(
- // ...why are we instantiating an interface again?
- new SimpleSynchronousResourceReloadListener() {
- @Override
- public Identifier getFabricId() {
- return new Identifier("skyblocker", "tabhud");
- }
-
- @Override
- public void reload(ResourceManager manager) {
-
- standardMap.clear();
- screenAMap.clear();
- screenBMap.clear();
-
- int excnt = 0;
-
- for (Map.Entry<