aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java37
1 files changed, 37 insertions, 0 deletions
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 93219240..384250f9 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/BarGrid.java
@@ -53,6 +53,28 @@ public class BarGrid {
}
}
+ public void addRowToEnd(boolean top, boolean right) {
+ if (top) {
+ this.top.add(new LinkedList<>());
+ } else {
+ (right ? bottomRight: bottomLeft).add(new LinkedList<>());
+ }
+ }
+
+ public void addToEndOfRow(int row, boolean right, StatusBar bar) {
+ if (row>0) {
+ LinkedList<StatusBar> statusBars = top.get(row - 1);
+ statusBars.add(bar);
+ bar.gridY = row;
+ bar.gridX = statusBars.indexOf(bar)+1;
+ } else if (row<0) {
+ LinkedList<StatusBar> statusBars = (right? bottomRight: bottomLeft).get(Math.abs(row)-1);
+ statusBars.add(bar);
+ bar.gridY = row;
+ bar.gridX = (statusBars.indexOf(bar)+1) * (right ? 1: -1);
+ }
+ }
+
public void remove(int x, int y) {
System.out.println("Removing x: " + x + " y: " + y);
if (y > 0) {
@@ -92,6 +114,21 @@ public class BarGrid {
}
}
+ public boolean coordinatesExist(int x, int y) {
+ if (x == 0 || y == 0) return false;
+ if (y > 0) {
+ if (y > getTopSize()) return false;
+ return x <= getRow(y, false).size();
+ } else {
+ if (Math.abs(y) > (x < 0 ? getBottomLeftSize(): getBottomRightSize())) return false;
+ return Math.abs(x) <= getRow(y, x > 0).size();
+ }
+ }
+
+ public StatusBar getBar(int x, int y) {
+ return getRow(y, x>0).get(Math.abs(x)-1);
+ }
+
public int getTopSize() {return top.size();}
public int getBottomLeftSize() {return bottomLeft.size();}