aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java45
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java22
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/AlignStage.java46
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/CollideStage.java24
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/PlaceStage.java42
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screenbuilder/pipeline/StackStage.java30
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) {