aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/polyfrost/oneconfig/hud/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/polyfrost/oneconfig/hud/interfaces')
-rw-r--r--src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java b/src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java
index ebc5459..723a09e 100644
--- a/src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java
+++ b/src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java
@@ -12,6 +12,11 @@ public abstract class BasicHud {
public int paddingY = 5;
public boolean background = true;
public boolean rounded = false;
+ public BasicHud childLeft;
+ public BasicHud childRight;
+ public BasicHud childBottom;
+ public BasicHud childTop;
+ public BasicHud parent;
public abstract int getWidth(float scale);
@@ -28,13 +33,21 @@ public abstract class BasicHud {
}
public void drawAll(float x, float y, float scale) {
- drawBackground(x, y, scale);
+ if (parent == null) drawBackground(x, y, scale);
draw((int) (x + paddingX * scale / 2f), (int) (y + paddingY * scale / 2f), scale);
+ if (childLeft != null)
+ childLeft.drawAll((int) (x + paddingX * scale / 2f) - childRight.getWidth(scale), (int) (y + paddingY * scale / 2f), scale);
+ if (childRight != null)
+ childRight.drawAll((int) (x + paddingX * scale / 2f) + getWidth(scale), (int) (y + paddingY * scale / 2f), scale);
}
public void drawExampleAll(float x, float y, float scale) {
- drawBackground(x, y, scale);
+ if (parent == null) drawBackground(x, y, scale);
drawExample((int) (x + paddingX * scale / 2f), (int) (y + paddingY * scale / 2f), scale);
+ if (childLeft != null)
+ childLeft.drawExampleAll((int) (x + paddingX * scale / 2f) - childRight.getWidth(scale), (int) (y + paddingY * scale / 2f), scale);
+ if (childRight != null)
+ childRight.drawExampleAll((int) (x + paddingX * scale / 2f) + getWidth(scale), (int) (y + paddingY * scale / 2f), scale);
}
public void drawExample(int x, int y, float scale) {
@@ -43,7 +56,7 @@ public abstract class BasicHud {
private void drawBackground(float x, float y, float scale) {
Renderer.drawRoundRect((int) x, (int) y,
- (int) (getWidth(scale) + paddingX * scale), (int) (getHeight(scale) + paddingY * scale),
+ (int) (getTotalWidth(scale) + paddingX * scale), (int) (getTotalHeight(scale) + paddingY * scale),
(int) (2 * scale), new Color(0, 0, 0, 120).getRGB());
}
@@ -60,4 +73,18 @@ public abstract class BasicHud {
}
return (float) (screenHeight - (1d - yUnscaled) * screenHeight - (getHeight(scale) + paddingY * scale));
}
+
+ public int getTotalWidth(float scale) {
+ int width = getWidth(scale);
+ if (childLeft != null) width += childLeft.getWidth(scale);
+ if (childRight != null) width += childRight.getWidth(scale);
+ return width;
+ }
+
+ public int getTotalHeight(float scale) {
+ int height = getHeight(scale);
+ if (childBottom != null) height += childBottom.getHeight(scale);
+ if (childTop != null) height += childTop.getHeight(scale);
+ return height;
+ }
}