diff options
author | isXander <isxander@users.noreply.github.com> | 2022-09-19 19:11:13 +0100 |
---|---|---|
committer | isXander <isxander@users.noreply.github.com> | 2022-09-19 19:11:13 +0100 |
commit | de1c8a317226b58fe03497027136eaed1adfd808 (patch) | |
tree | 5f97d6d91bc37f83d8de8c6f4a335d06a014cee0 /src/main/java/dev/isxander/yacl/gui/controllers | |
parent | 904e4d61b6cf84c807a99e66fc70527b01ae6fcc (diff) | |
download | YetAnotherConfigLib-de1c8a317226b58fe03497027136eaed1adfd808.tar.gz YetAnotherConfigLib-de1c8a317226b58fe03497027136eaed1adfd808.tar.bz2 YetAnotherConfigLib-de1c8a317226b58fe03497027136eaed1adfd808.zip |
1.4.0
improved tooltips
`ButtonOption` now consumes itself, so you can access it when building.
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers')
-rw-r--r-- | src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java | 6 | ||||
-rw-r--r-- | src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java | 21 |
2 files changed, 6 insertions, 21 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java index 3550072..673b614 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java @@ -9,13 +9,13 @@ import net.minecraft.text.Text; import org.jetbrains.annotations.ApiStatus; import org.lwjgl.glfw.GLFW; -import java.util.function.Consumer; +import java.util.function.BiConsumer; /** * Simple controller that simply runs the button action on press * and renders a {@link} Text on the right. */ -public class ActionController implements Controller<Consumer<YACLScreen>> { +public class ActionController implements Controller<BiConsumer<YACLScreen, ButtonOption>> { public static final Text DEFAULT_TEXT = Text.translatable("yacl.control.action.execute"); private final ButtonOption option; @@ -75,7 +75,7 @@ public class ActionController implements Controller<Consumer<YACLScreen>> { public void executeAction() { playDownSound(); - control.option().action().accept(screen); + control.option().action().accept(screen, control.option()); } @Override 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 cd70872..dded9c1 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java @@ -4,16 +4,12 @@ import dev.isxander.yacl.api.Controller; import dev.isxander.yacl.api.utils.Dimension; import dev.isxander.yacl.gui.AbstractWidget; import dev.isxander.yacl.gui.YACLScreen; -import dev.isxander.yacl.impl.YACLConstants; import net.minecraft.client.font.MultilineText; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.OrderedText; import net.minecraft.text.Text; -import java.util.List; - public abstract class ControllerWidget<T extends Controller<?>> extends AbstractWidget { protected final T control; protected MultilineText wrappedTooltip; @@ -21,9 +17,6 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract protected boolean focused = false; protected boolean hovered = false; - protected float hoveredTicks = 0; - - private int prevMouseX, prevMouseY; public ControllerWidget(T control, YACLScreen screen, Dimension<Integer> dim) { super(dim); @@ -36,11 +29,6 @@ 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 && (!YACLConstants.HOVER_MOUSE_RESET || (mouseX == prevMouseX && mouseY == prevMouseY))) { - hoveredTicks += delta; - } else { - hoveredTicks = 0; - } Text name = control.option().name(); String nameString = name.getString(); @@ -65,15 +53,12 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract if (isHovered()) { drawHoveredControl(matrices, mouseX, mouseY, delta); } - - prevMouseX = mouseX; - prevMouseY = mouseY; } @Override public void postRender(MatrixStack matrices, int mouseX, int mouseY, float delta) { - if (hoveredTicks >= YACLConstants.HOVER_TICKS) { - YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, mouseX, mouseY, screen.width, screen.height); + if (hovered) { + YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, dim.centerX(), dim.y() - 5, dim.yLimit() + 5, screen.width, screen.height); } } @@ -96,7 +81,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract } private void updateTooltip() { - this.wrappedTooltip = MultilineText.create(textRenderer, control.option().tooltip(), screen.width / 2); + this.wrappedTooltip = MultilineText.create(textRenderer, control.option().tooltip(), screen.width / 3 * 2); } protected int getControlWidth() { |