From f06946c01b2c8f210b398a16610c260eca093a8b Mon Sep 17 00:00:00 2001 From: Wyvest <45589059+Wyvest@users.noreply.github.com> Date: Thu, 21 Jul 2022 04:04:48 +0900 Subject: HUD Improvements, 1.16 port, fix NanoVG with ARM (#52) * egg 1 * separate Hud from background stuff * 1984 This reverts commit 9ae517d57bbd495d30d35cb1cbfe81a03556e6bd. * hitboxes woo!!!!! * Revert "hitboxes woo!!!!!" This reverts commit 405d32d17df3c83f2e79eddf0de853f7279767a6. * padding * allow position to go slightly off the screen * stop using ints for ABSOLUTELY EVERYTHING, DIAMOND ... fix vigilance compat not setting color * start on new pos system * some stuff * finish new position system * api momento * 1.16.2 fabric port * start on hud gui * temp remove 1.16.2 fabric since it doesn't compile * fix fabric build * hud gui stuff * apiDump * fix fabric build 2 * so true * selecting stuff * scaling + other small things * More protecting * fix nanovg not working with macOS ARM move OneConfig.preLaunch to OneConfigInit * clean up OneUIScreen make kotlin version of TestNanoVGGui * make keybinds have runnable by default * rollback keybind things * merge master into hud-improvements (#55) * Release workflow (#53) * release workflow * update normal version to hash * fix * fix naming * fix some stuff * fix version thing * switch to number from hash * Release workflow (#54) * release workflow * update normal version to hash * fix * fix naming * fix some stuff * fix version thing * switch to number from hash * Maybe epic fixo * gotta love those Java principles * Revert "gotta love those Java principles", wrong branch This reverts commit 333d8b2ad8941790c13c4bfe0777fbd203d463e5. * start on snapping * Finish snapping * stop including mixin by default on legacy versions this breaks builds if the mod itself does not use mixin * merge draw and drawExample * fix gradle publish * Some fixes * Api DUmpidy * Help subcommand impovments (#59) * Made the overall look of the "help" subcommand better + added the ability to change the colour for the command overall + each individual SubCommand * Made the alliases show batter + added support for to show subcommand aliasses * mr deliverer didnt reply but whatever, added a space between command/subcommand and alliasses Co-authored-by: pinkulu * fix file not overwriting toJavaColor * Fix full shadow not scaling correctly Co-authored-by: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Co-authored-by: nxtdaydelivery <12willettsh@gmail.com> Co-authored-by: pinkulu <56201697+pinkulu@users.noreply.github.com> Co-authored-by: pinkulu --- .../oneconfig/internal/hud/utils/GrabOffset.java | 27 ++++++++++++ .../oneconfig/internal/hud/utils/SnappingLine.java | 49 ++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/GrabOffset.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/hud/utils/SnappingLine.java (limited to 'src/main/java/cc/polyfrost/oneconfig/internal/hud/utils') 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; + } +} -- cgit