diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder')
6 files changed, 87 insertions, 122 deletions
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 index 76b675ce..084a6ffd 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java @@ -28,21 +28,21 @@ import net.minecraft.util.Identifier; public class ScreenBuilder { // layout pipeline - private ArrayList<PipelineStage> layoutPipeline = new ArrayList<>(); + private final ArrayList<PipelineStage> layoutPipeline = new ArrayList<>(); // all widget instances this builder knows - private ArrayList<Widget> instances = new ArrayList<>(); + private final ArrayList<Widget> instances = new ArrayList<>(); // maps alias -> widget instance - private HashMap<String, Widget> objectMap = new HashMap<>(); + private final HashMap<String, Widget> objectMap = new HashMap<>(); - private String builderName; + private final String builderName; /** * Create a ScreenBuilder from a json. */ public ScreenBuilder(Identifier ident) { - try (BufferedReader reader = MinecraftClient.getInstance().getResourceManager().openAsReader(ident);) { + try (BufferedReader reader = MinecraftClient.getInstance().getResourceManager().openAsReader(ident)) { this.builderName = ident.getPath(); JsonObject json = JsonParser.parseReader(reader).getAsJsonObject(); @@ -79,23 +79,23 @@ public class ScreenBuilder { // do widgets that require args the normal way JsonElement arg; switch (name) { - case "EventWidget": + case "EventWidget" -> { return new EventWidget(widget.get("inGarden").getAsBoolean()); - - case "DungeonPlayerWidget": + } + case "DungeonPlayerWidget" -> { return new DungeonPlayerWidget(widget.get("player").getAsInt()); - - case "ErrorWidget": + } + case "ErrorWidget" -> { arg = widget.get("text"); if (arg == null) { return new ErrorWidget(); } else { return new ErrorWidget(arg.getAsString()); } - - case "Widget": + } + case "Widget" -> // clown case sanity check. don't instantiate the superclass >:| - throw new NoSuchElementException(builderName + "[ERROR]: No such Widget type \"Widget\"!"); + throw new NoSuchElementException(builderName + "[ERROR]: No such Widget type \"Widget\"!"); } // reflect something together for the "normal" ones. @@ -143,18 +143,13 @@ public class ScreenBuilder { String op = descr.get("op").getAsString(); - switch (op) { - case "place": - return new PlaceStage(this, descr); - case "stack": - return new StackStage(this, descr); - case "align": - return new AlignStage(this, descr); - case "collideAgainst": - return new CollideStage(this, descr); - default: - throw new NoSuchElementException("No such op " + op + " as requested by " + this.builderName); - } + 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); + }; } /** 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 index 165e875d..f771ce83 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java @@ -7,15 +7,11 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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.TabHud; -import me.xmrvizzy.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PipelineStage; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerLocator; -import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.Widget; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.fabricmc.fabric.api.resource.ResourcePackActivationType; import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; @@ -33,9 +29,9 @@ public class ScreenMaster { private static final int VERSION = 1; - private static HashMap<String, ScreenBuilder> standardMap = new HashMap<>(); - private static HashMap<String, ScreenBuilder> screenAMap = new HashMap<>(); - private static HashMap<String, ScreenBuilder> screenBMap = new HashMap<>(); + 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 @@ -49,12 +45,10 @@ public class ScreenMaster { location = location.replace(".json", ""); ScreenBuilder sb = new ScreenBuilder(ident); - if (screenType.equals("standard")) { - standardMap.put(location, sb); - } else if (screenType.equals("screen_a")) { - screenAMap.put(location, sb); - } else if (screenType.equals("screen_b")) { - screenBMap.put(location, sb); + switch (screenType) { + case "standard" -> standardMap.put(location, sb); + case "screen_a" -> screenAMap.put(location, sb); + case "screen_b" -> screenBMap.put(location, sb); } } @@ -117,7 +111,7 @@ public class ScreenMaster { .entrySet()) { try (BufferedReader reader = MinecraftClient.getInstance().getResourceManager() - .openAsReader(entry.getKey());) { + .openAsReader(entry.getKey())) { JsonObject json = JsonParser.parseReader(reader).getAsJsonObject(); if (json.get("format_version").getAsInt() != VERSION) { throw new IllegalStateException(String.format("Resource pack isn't compatible! Expected version %d, got %d", VERSION, json.get("format_version").getAsInt())); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java index 74ebed64..76789a4c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java @@ -25,7 +25,7 @@ public class AlignStage extends PipelineStage { private final String str; - private AlignReference(String d) { + AlignReference(String d) { this.str = d; } @@ -39,11 +39,11 @@ public class AlignStage extends PipelineStage { } } - private AlignReference reference; + private final AlignReference reference; public AlignStage(ScreenBuilder builder, JsonObject descr) { this.reference = AlignReference.parse(descr.get("reference").getAsString()); - this.primary = new ArrayList<Widget>(descr.getAsJsonArray("apply_to") + this.primary = new ArrayList<>(descr.getAsJsonArray("apply_to") .asList() .stream() .map(x -> builder.getInstance(x.getAsString())) @@ -54,40 +54,28 @@ public class AlignStage extends PipelineStage { int wHalf, hHalf; for (Widget wid : primary) { switch (this.reference) { - case HORICENT: - wid.setX((screenW - wid.getWidth()) / 2); - break; - case VERTCENT: - wid.setY((screenH - wid.getHeight()) / 2); - break; - case LEFTCENT: + case HORICENT -> wid.setX((screenW - wid.getWidth()) / 2); + case VERTCENT -> wid.setY((screenH - wid.getHeight()) / 2); + case LEFTCENT -> { wHalf = screenW / 2; wid.setX(wHalf - ScreenConst.WIDGET_PAD_HALF - wid.getWidth()); - break; - case RIGHTCENT: + } + case RIGHTCENT -> { wHalf = screenW / 2; wid.setX(wHalf + ScreenConst.WIDGET_PAD_HALF); - break; - case TOPCENT: + } + case TOPCENT -> { hHalf = screenH / 2; wid.setY(hHalf - ScreenConst.WIDGET_PAD_HALF - wid.getHeight()); - break; - case BOTCENT: + } + case BOTCENT -> { hHalf = screenH / 2; wid.setY(hHalf + ScreenConst.WIDGET_PAD_HALF); - break; - case TOP: - wid.setY(ScreenConst.getScreenPad()); - break; - case BOT: - wid.setY(screenH - wid.getHeight() - ScreenConst.getScreenPad()); - break; - case LEFT: - wid.setX(ScreenConst.getScreenPad()); - break; - case RIGHT: - wid.setX(screenW - wid.getWidth() - ScreenConst.getScreenPad()); - break; + } + case TOP -> wid.setY(ScreenConst.getScreenPad()); + case BOT -> wid.setY(screenH - wid.getHeight() - ScreenConst.getScreenPad()); + case LEFT -> wid.setX(ScreenConst.getScreenPad()); + case RIGHT -> wid.setX(screenW - wid.getWidth() - ScreenConst.getScreenPad()); } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java index 30031c93..b6a5f789 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java @@ -19,7 +19,7 @@ public class CollideStage extends PipelineStage { private final String str; - private CollideDirection(String d) { + CollideDirection(String d) { this.str = d; } @@ -33,16 +33,16 @@ public class CollideStage extends PipelineStage { } } - private CollideDirection direction; + private final CollideDirection direction; public CollideStage(ScreenBuilder builder, JsonObject descr) { this.direction = CollideDirection.parse(descr.get("direction").getAsString()); - this.primary = new ArrayList<Widget>(descr.getAsJsonArray("widgets") + this.primary = new ArrayList<>(descr.getAsJsonArray("widgets") .asList() .stream() .map(x -> builder.getInstance(x.getAsString())) .toList()); - this.secondary = new ArrayList<Widget>(descr.getAsJsonArray("colliders") + this.secondary = new ArrayList<>(descr.getAsJsonArray("colliders") .asList() .stream() .map(x -> builder.getInstance(x.getAsString())) @@ -51,18 +51,10 @@ public class CollideStage extends PipelineStage { public void run(int screenW, int screenH) { switch (this.direction) { - case LEFT: - primary.forEach(w -> collideAgainstL(screenW, w)); - break; - case RIGHT: - primary.forEach(w -> collideAgainstR(screenW, w)); - break; - case TOP: - primary.forEach(w -> collideAgainstT(screenH, w)); - break; - case BOT: - primary.forEach(w -> collideAgainstB(screenH, w)); - break; + case LEFT -> primary.forEach(w -> collideAgainstL(screenW, w)); + case RIGHT -> primary.forEach(w -> collideAgainstR(screenW, w)); + case TOP -> primary.forEach(w -> collideAgainstT(screenH, w)); + case BOT -> primary.forEach(w -> collideAgainstB(screenH, w)); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java index 31a27001..a950f8f2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java @@ -24,7 +24,7 @@ public class PlaceStage extends PipelineStage { private final String str; - private PlaceLocation(String d) { + PlaceLocation(String d) { this.str = d; } @@ -38,11 +38,11 @@ public class PlaceStage extends PipelineStage { } } - private PlaceLocation where; + private final PlaceLocation where; public PlaceStage(ScreenBuilder builder, JsonObject descr) { this.where = PlaceLocation.parse(descr.get("where").getAsString()); - this.primary = new ArrayList<Widget>(descr.getAsJsonArray("apply_to") + this.primary = new ArrayList<>(descr.getAsJsonArray("apply_to") .asList() .stream() .map(x -> builder.getInstance(x.getAsString())) @@ -53,42 +53,42 @@ public class PlaceStage extends PipelineStage { public void run(int screenW, int screenH) { Widget wid = primary.get(0); switch (where) { - case CENTER: + case CENTER -> { wid.setX((screenW - wid.getWidth()) / 2); wid.setY((screenH - wid.getHeight()) / 2); - break; - case TOPCENT: + } + case TOPCENT -> { wid.setX((screenW - wid.getWidth()) / 2); wid.setY(ScreenConst.getScreenPad()); - break; - case BOTCENT: + } + case BOTCENT -> { wid.setX((screenW - wid.getWidth()) / 2); wid.setY((screenH - wid.getHeight()) - ScreenConst.getScreenPad()); - break; - case LEFTCENT: + } + case LEFTCENT -> { wid.setX(ScreenConst.getScreenPad()); wid.setY((screenH - wid.getHeight()) / 2); - break; - case RIGHTCENT: + } + case RIGHTCENT -> { wid.setX((screenW - wid.getWidth()) - ScreenConst.getScreenPad()); wid.setY((screenH - wid.getHeight()) / 2); - break; - case TLCORNER: + } + case TLCORNER -> { wid.setX(ScreenConst.getScreenPad()); wid.setY(ScreenConst.getScreenPad()); - break; - case TRCORNER: + } + case TRCORNER -> { wid.setX((screenW - wid.getWidth()) - ScreenConst.getScreenPad()); wid.setY(ScreenConst.getScreenPad()); - break; - case BLCORNER: + } + case BLCORNER -> { wid.setX(ScreenConst.getScreenPad()); wid.setY((screenH - wid.getHeight()) - ScreenConst.getScreenPad()); - break; - case BRCORNER: + } + case BRCORNER -> { wid.setX((screenW - wid.getWidth()) - ScreenConst.getScreenPad()); wid.setY((screenH - wid.getHeight()) - ScreenConst.getScreenPad()); - break; + } } } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java index b32a3cca..5eb575c3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java @@ -17,7 +17,7 @@ public class StackStage extends PipelineStage { private final String str; - private StackDirection(String d) { + StackDirection(String d) { this.str = d; } @@ -40,7 +40,7 @@ public class StackStage extends PipelineStage { private final String str; - private StackAlign(String d) { + StackAlign(String d) { this.str = d; } @@ -54,13 +54,13 @@ public class StackStage extends PipelineStage { } } - private StackDirection direction; - private StackAlign align; + private final StackDirection direction; + private final StackAlign align; public StackStage(ScreenBuilder builder, JsonObject descr) { this.direction = StackDirection.parse(descr.get("direction").getAsString()); this.align = StackAlign.parse(descr.get("align").getAsString()); - this.primary = new ArrayList<Widget>(descr.getAsJsonArray("apply_to") + this.primary = new ArrayList<>(descr.getAsJsonArray("apply_to") .asList() .stream() .map(x -> builder.getInstance(x.getAsString())) @@ -69,12 +69,8 @@ public class StackStage extends PipelineStage { public void run(int screenW, int screenH) { switch (this.direction) { - case HORIZONTAL: - stackWidgetsHoriz(screenW); - break; - case VERTICAL: - stackWidgetsVert(screenH); - break; + case HORIZONTAL -> stackWidgetsHoriz(screenW); + case VERTICAL -> stackWidgetsVert(screenH); } } @@ -86,9 +82,9 @@ public class StackStage extends PipelineStage { int y = switch (this.align) { - case TOP -> y = ScreenConst.getScreenPad(); - case BOT -> y = (screenH - compHeight) - ScreenConst.getScreenPad(); - default -> y = (screenH - compHeight) / 2; + case TOP -> ScreenConst.getScreenPad(); + case BOT -> (screenH - compHeight) - ScreenConst.getScreenPad(); + default -> (screenH - compHeight) / 2; }; for (Widget wid : primary) { @@ -106,9 +102,9 @@ public class StackStage extends PipelineStage { int x = switch (this.align) { - case LEFT-> x = ScreenConst.getScreenPad(); - case RIGHT -> x = (screenW - compWidth) - ScreenConst.getScreenPad(); - default -> x = (screenW - compWidth) / 2; + case LEFT -> ScreenConst.getScreenPad(); + case RIGHT -> (screenW - compWidth) - ScreenConst.getScreenPad(); + default -> (screenW - compWidth) / 2; }; for (Widget wid : primary) { |
