diff options
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/internal/hud')
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; + } +} |
