aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorvicisacat <victor.branchu@gmail.com>2024-04-03 15:33:12 +0200
committervicisacat <victor.branchu@gmail.com>2024-04-20 16:09:48 +0200
commita6ac00af3844d5f59c1f528a901c94e91e58889d (patch)
treebf271c57a1161d1c6f16d6311e3f391413ac7095 /src/main/java
parent81ee919672b3628c58e6499c806bac14d6b40ec4 (diff)
downloadSkyblocker-a6ac00af3844d5f59c1f528a901c94e91e58889d.tar.gz
Skyblocker-a6ac00af3844d5f59c1f528a901c94e91e58889d.tar.bz2
Skyblocker-a6ac00af3844d5f59c1f528a901c94e91e58889d.zip
progress ig
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/FancyStatusBars.java77
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java13
4 files changed, 95 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/de/hysky/skyblocker/skyblock/FancyStatusBars.java
index 7744626b..a5cbab1f 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/FancyStatusBars.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/FancyStatusBars.java
@@ -47,6 +47,83 @@ public class FancyStatusBars {
statusBars.put("intelligence", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "temp"), new Color[]{new Color(0, 255, 255), new Color(180, 0, 255)}, true, null));
statusBars.put("defense", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "temp"), new Color[]{new Color(255, 255, 255)}, false, null));
statusBars.put("experience", new StatusBar(new Identifier(SkyblockerMod.NAMESPACE, "temp"), new Color[]{new Color(100, 220, 70)}, false, null));
+
+ barGrid.addRow(1, false);
+ barGrid.add(1, 1, statusBars.get("health"));
+ barGrid.add(2, 1, statusBars.get("intelligence"));
+ barGrid.addRow(2, false);
+ barGrid.add(1, 2, statusBars.get("experience"));
+ barGrid.addRow(-1, true);
+ barGrid.add(1, -1, statusBars.get("defense"));
+ }
+
+ public static void updatePositions() {
+ final float hotbarSize = 182;
+ final int width = MinecraftClient.getInstance().getWindow().getScaledWidth();
+ final int height = MinecraftClient.getInstance().getWindow().getScaledHeight();
+
+ // THE TOP
+ for (int i = 0; i < barGrid.getTopSize(); i++) {
+ List<StatusBar> row = barGrid.getRow(i + 1, false);
+ if (row.isEmpty()) continue;
+ int totalSize = 0;
+ for (StatusBar bar : row) {
+ totalSize += bar.size;
+ }
+
+ // Fix sizing
+ whileLoop: while (totalSize != 12) {
+ if (totalSize > 12) {
+ for (StatusBar bar : row) {
+ bar.size--;
+ totalSize--;
+ if (totalSize == 12) break whileLoop;
+ }
+ } else {
+ for (StatusBar bar : row) {
+ bar.size++;
+ totalSize++;
+ if (totalSize == 12) break whileLoop;
+ }
+ }
+ }
+
+ int x = width/2 - 91;
+ int y = height - 33 - 10*i;
+ for (StatusBar bar : row) {
+ bar.setX(x);
+ bar.setY(y);
+ bar.setWidth((int) ((bar.size / 12.f)*hotbarSize));
+ x += bar.getWidth();
+ }
+ }
+
+ // BOTTOM LEFT
+ for (int i = 0; i < barGrid.getBottomLeftSize(); i++) {
+ List<StatusBar> row = barGrid.getRow(-(i + 1), false);
+ if (row.isEmpty()) continue;
+ int x = width/2 - 91 - 2;
+ int y = height - 15-10*i;
+ for (StatusBar bar : row) {
+ bar.setY(y);
+ bar.setWidth(bar.size*25);
+ x -= bar.getWidth();
+ bar.setX(x);
+ }
+ }
+ // BOTTOM RIGHT
+ for (int i = 0; i < barGrid.getBottomRightSize(); i++) {
+ List<StatusBar> row = barGrid.getRow(-(i + 1), true);
+ if (row.isEmpty()) continue;
+ int x = width/2 + 91 + 2;
+ int y = height - 15-10*i;
+ for (StatusBar bar : row) {
+ bar.setX(x);
+ bar.setY(y);
+ bar.setWidth(bar.size*25);
+ x += bar.getWidth();
+ }
+ }
}
public FancyStatusBars() {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
index b85f85e1..5e774d4a 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
@@ -90,4 +90,9 @@ public class BarGrid {
}
}
}
+
+ public int getTopSize() {return top.size();}
+
+ public int getBottomLeftSize() {return bottomLeft.size();}
+ public int getBottomRightSize() {return bottomRight.size();}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java
index 9c688051..a15660f0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java
@@ -26,7 +26,7 @@ public class StatusBar implements Widget, Drawable, Element, Selectable {
public int gridX = 0;
public int gridY = 0;
- public float size = 1;
+ public int size = 1;
private int width = 0;
public float fill = 0;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java
index 2d80e764..0a08a199 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBarsConfigScreen.java
@@ -34,7 +34,7 @@ public class StatusBarsConfigScreen extends Screen {
cursorBar.setY(mouseY);
cursorBar.render(context, mouseX, mouseY, delta);
- for (ScreenRect screenRect : meaningFullName.keySet()) {
+ mainLoop: for (ScreenRect screenRect : meaningFullName.keySet()) {
for (NavigationDirection value : NavigationDirection.values()) {
boolean overlaps = screenRect.getBorder(value).overlaps(new ScreenRect(new ScreenPos(mouseX - 1, mouseY - 1), 3, 3));
if (overlaps) {
@@ -44,8 +44,19 @@ public class StatusBarsConfigScreen extends Screen {
if (value.getAxis().equals(NavigationAxis.VERTICAL)) {
if (value.isPositive()) {
FancyStatusBars.barGrid.addRow(ints[1]+1, ints[0]>0);
+ FancyStatusBars.barGrid.add(1, ints[1] + 1, cursorBar);
+ } else {
+ FancyStatusBars.barGrid.addRow(ints[1], ints[0]>0);
+ FancyStatusBars.barGrid.add(1, ints[1], cursorBar);
+ }
+ } else {
+ if (value.isPositive()) {
+ FancyStatusBars.barGrid.add(ints[0] + 1, ints[1], cursorBar);
+ } else {
+ FancyStatusBars.barGrid.add(ints[0], ints[1], cursorBar);
}
}
+ break mainLoop;
}
}
}