aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/gui/YACLScreen.java
diff options
context:
space:
mode:
authorisXander <isxander@users.noreply.github.com>2022-09-19 19:11:13 +0100
committerisXander <isxander@users.noreply.github.com>2022-09-19 19:11:13 +0100
commitde1c8a317226b58fe03497027136eaed1adfd808 (patch)
tree5f97d6d91bc37f83d8de8c6f4a335d06a014cee0 /src/main/java/dev/isxander/yacl/gui/YACLScreen.java
parent904e4d61b6cf84c807a99e66fc70527b01ae6fcc (diff)
downloadYetAnotherConfigLib-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/YACLScreen.java')
-rw-r--r--src/main/java/dev/isxander/yacl/gui/YACLScreen.java25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/YACLScreen.java b/src/main/java/dev/isxander/yacl/gui/YACLScreen.java
index cef8fec..6b5a2e4 100644
--- a/src/main/java/dev/isxander/yacl/gui/YACLScreen.java
+++ b/src/main/java/dev/isxander/yacl/gui/YACLScreen.java
@@ -4,21 +4,17 @@ import com.mojang.blaze3d.systems.RenderSystem;
import dev.isxander.yacl.api.*;
import dev.isxander.yacl.api.utils.Dimension;
import dev.isxander.yacl.api.utils.OptionUtils;
-import dev.isxander.yacl.impl.YACLConstants;
import net.minecraft.client.font.MultilineText;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.tooltip.TooltipComponent;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.math.Matrix4f;
-import java.util.ArrayList;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -118,7 +114,7 @@ public class YACLScreen extends Screen {
for (Element child : children()) {
if (child instanceof TooltipButtonWidget tooltipButtonWidget) {
- tooltipButtonWidget.renderHoveredTooltip(matrices, mouseX, mouseY);
+ tooltipButtonWidget.renderHoveredTooltip(matrices);
}
}
}
@@ -220,21 +216,24 @@ public class YACLScreen extends Screen {
client.setScreen(parent);
}
- public static void renderMultilineTooltip(MatrixStack matrices, TextRenderer textRenderer, MultilineText text, int x, int y, int screenWidth, int screenHeight) {
+ public static void renderMultilineTooltip(MatrixStack matrices, TextRenderer textRenderer, MultilineText text, int centerX, int yAbove, int yBelow, int screenWidth, int screenHeight) {
if (text.count() > 0) {
int maxWidth = text.getMaxWidth();
int lineHeight = textRenderer.fontHeight + 1;
int height = text.count() * lineHeight - 1;
+ int belowY = yBelow + 12;
+ int aboveY = yAbove - height + 12;
+ int maxBelow = screenHeight - (belowY + height);
+ int minAbove = aboveY - height;
+ int y = belowY;
+ if (maxBelow < -8)
+ y = maxBelow > minAbove ? belowY : aboveY;
+
+ int x = centerX - text.getMaxWidth() / 2 - 12;
+
int drawX = x + 12;
int drawY = y - 12;
- if (drawX + maxWidth > screenWidth) {
- drawX -= 28 + maxWidth;
- }
-
- if (drawY + height + 6 > screenHeight) {
- drawY = screenHeight - height - 6;
- }
matrices.push();
Tessellator tessellator = Tessellator.getInstance();