diff options
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java')
-rw-r--r-- | src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java index 216c945..fe78b2e 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java @@ -16,12 +16,14 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract protected final T control; protected final List<OrderedText> wrappedTooltip; - public Dimension<Integer> dim; + protected Dimension<Integer> dim; protected final Screen screen; protected boolean hovered = false; protected float hoveredTicks = 0; + private int prevMouseX, prevMouseY; + public ControllerWidget(T control, Screen screen, Dimension<Integer> dim) { this.control = control; this.dim = dim; @@ -32,7 +34,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract @Override public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { hovered = isMouseOver(mouseX, mouseY); - if (hovered) { + if (hovered && mouseX == prevMouseX && mouseY == prevMouseY) { hoveredTicks += delta; } else { hoveredTicks = 0; @@ -62,9 +64,12 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract drawHoveredControl(matrices, mouseX, mouseY, delta); } - if (hoveredTicks > 40) { + if (hoveredTicks > 30) { screen.renderOrderedTooltip(matrices, wrappedTooltip, mouseX, mouseY); } + + prevMouseX = mouseX; + prevMouseY = mouseY; } protected void drawHoveredControl(MatrixStack matrices, int mouseX, int mouseY, float delta) { @@ -117,6 +122,10 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract return dim.y() + dim.height() / 2f - textRenderer.fontHeight / 2f; } + public void setDimension(Dimension<Integer> dim) { + this.dim = dim; + } + @Override public SelectionType getType() { return hovered ? SelectionType.HOVERED : SelectionType.NONE; |