aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/internal/hud
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/internal/hud')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/GrabOffset.java27
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/SnappingLine.java49
3 files changed, 77 insertions, 1 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java b/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java
index 31604ed..812a8e4 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java
@@ -16,7 +16,7 @@ public class HudCore {
if (editing) return;
for (Hud hud : huds) {
if (!hud.isEnabled()) continue;
- hud.drawAll(event.matrices, hud.getXScaled(UResolution.getScaledWidth()), hud.getYScaled(UResolution.getScaledHeight()), hud.scale, true);
+ hud.drawAll(event.matrices, false);
}
}
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/GrabOffset.java b/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/GrabOffset.java
new file mode 100644
index 0000000..122ff77
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/GrabOffset.java
@@ -0,0 +1,27 @@
+package cc.polyfrost.oneconfig.internal.hud.utils;
+
+public class GrabOffset {
+ private float offsetX;
+ private float offsetY;
+
+ public GrabOffset(float offsetX, float offsetY) {
+ setOffset(offsetX, offsetY);
+ }
+
+ public GrabOffset() {
+ this(0, 0);
+ }
+
+ public void setOffset(float offsetX, float offsetY) {
+ this.offsetX = offsetX;
+ this.offsetY = offsetY;
+ }
+
+ public float getX() {
+ return offsetX;
+ }
+
+ public float getY() {
+ return offsetY;
+ }
+}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/SnappingLine.java b/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/SnappingLine.java
new file mode 100644
index 0000000..2a89e1f
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/SnappingLine.java
@@ -0,0 +1,49 @@
+package cc.polyfrost.oneconfig.internal.hud.utils;
+
+import cc.polyfrost.oneconfig.libs.universal.UResolution;
+import cc.polyfrost.oneconfig.renderer.RenderManager;
+
+import java.awt.*;
+
+public class SnappingLine {
+ private static final int COLOR = new Color(138, 43, 226).getRGB();
+ private final float line;
+ private final float distance;
+ private final float position;
+
+ public SnappingLine(float line, float left, float size, boolean multipleSides) {
+ this.line = line;
+ float center = left + size / 2f;
+ float right = left + size;
+ float leftDistance = Math.abs(line - left);
+ float centerDistance = Math.abs(line - center);
+ float rightDistance = Math.abs(line - right);
+ if (!multipleSides || leftDistance <= centerDistance && leftDistance <= rightDistance) {
+ distance = leftDistance;
+ position = line;
+ } else if (centerDistance <= rightDistance) {
+ distance = centerDistance;
+ position = line - size / 2f;
+ } else {
+ distance = rightDistance;
+ position = line - size;
+ }
+ }
+
+ public void drawLine(long vg, float lineWidth, boolean isX) {
+ float pos = (float) (line * UResolution.getScaleFactor() - lineWidth / 2f);
+ if (isX) {
+ RenderManager.drawLine(vg, pos, 0, pos, UResolution.getWindowHeight(), lineWidth, COLOR);
+ } else {
+ RenderManager.drawLine(vg, 0, pos, UResolution.getWindowWidth(), pos, lineWidth, COLOR);
+ }
+ }
+
+ public float getPosition() {
+ return position;
+ }
+
+ public float getDistance() {
+ return distance;
+ }
+}