aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/polyfrost
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/polyfrost')
-rw-r--r--src/main/java/io/polyfrost/oneconfig/hud/gui/HudGui.java13
-rw-r--r--src/main/java/io/polyfrost/oneconfig/hud/interfaces/BasicHud.java33
2 files changed, 38 insertions, 8 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/hud/gui/HudGui.java b/src/main/java/io/polyfrost/oneconfig/hud/gui/HudGui.java
index cc55e59..7620a26 100644
--- a/src/main/java/io/polyfrost/oneconfig/hud/gui/HudGui.java
+++ b/src/main/java/io/polyfrost/oneconfig/hud/gui/HudGui.java
@@ -3,6 +3,7 @@ package io.polyfrost.oneconfig.hud.gui;
import io.polyfrost.oneconfig.hud.HudCore;
import io.polyfrost.oneconfig.hud.interfaces.BasicHud;
import io.polyfrost.oneconfig.renderer.Renderer;
+import io.polyfrost.oneconfig.test.TestHud;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreen;
@@ -20,13 +21,15 @@ public class HudGui extends GuiScreen {
private boolean isScaling;
private int xOffset;
private int yOffset;
- private boolean wereKeypressesEnabled;
@Override
public void initGui() {
HudCore.editing = true;
- wereKeypressesEnabled = Keyboard.areRepeatEventsEnabled();
Keyboard.enableRepeatEvents(true);
+ for (BasicHud hud : HudCore.huds) {
+ hud.childRight = new TestHud();
+ hud.childRight.parent = hud;
+ }
}
@Override
@@ -54,8 +57,8 @@ public class HudGui extends GuiScreen {
editingHud.yUnscaled = (yFloat + (hud.getHeight(hud.scale) + hud.paddingY * hud.scale)) / (double) this.height;
}
- int width = (int) (hud.getWidth(hud.scale) + hud.paddingX * hud.scale);
- int height = (int) (hud.getHeight(hud.scale) + hud.paddingY * hud.scale);
+ int width = (int) (hud.getTotalWidth(hud.scale) + hud.paddingX * hud.scale);
+ int height = (int) (hud.getTotalHeight(hud.scale) + hud.paddingY * hud.scale);
int x = (int) hud.getXScaled(this.width);
int y = (int) hud.getYScaled(this.height);
@@ -221,7 +224,7 @@ public class HudGui extends GuiScreen {
@Override
public void onGuiClosed() {
HudCore.editing = false;
- Keyboard.enableRepeatEvents(wereKeypressesEnabled);
+ Keyboard.enableRepeatEvents(false);
}
@Override
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 419bccf..cce2440 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) {
@@ -42,7 +55,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) (2 * scale), new Color(0, 0, 0, 120).getRGB());
+ Renderer.drawRoundRect((int) x, (int) y, (int) (getTotalWidth(scale) + paddingX * scale), (int) (getTotalHeight(scale) + paddingY * scale), (int) (2 * scale), new Color(0, 0, 0, 120).getRGB());
}
public float getXScaled(int screenWidth) {
@@ -58,4 +71,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;
+ }
}