aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
diff options
context:
space:
mode:
authorxander <xander@isxander.dev>2022-09-05 15:40:37 +0100
committerxander <xander@isxander.dev>2022-09-05 15:40:37 +0100
commitdec91e06b77a1397779710ca47b61613617967c1 (patch)
tree8957bee3d26f3bbb7d4f8045c62c3a74f402a772 /src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
parent2dc3dbbcb05af0a1ec2f65b3ff7b4770a37c382e (diff)
downloadYetAnotherConfigLib-dec91e06b77a1397779710ca47b61613617967c1.tar.gz
YetAnotherConfigLib-dec91e06b77a1397779710ca47b61613617967c1.tar.bz2
YetAnotherConfigLib-dec91e06b77a1397779710ca47b61613617967c1.zip
wrap labels and group names
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java')
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java b/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
index f61aedf..07ee8da 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
@@ -6,9 +6,12 @@ import dev.isxander.yacl.api.utils.Dimension;
import dev.isxander.yacl.gui.AbstractWidget;
import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.text.OrderedText;
import net.minecraft.text.Text;
import org.jetbrains.annotations.ApiStatus;
+import java.util.List;
+
/**
* Simply renders some text as a label.
*/
@@ -43,14 +46,31 @@ public class LabelController implements Controller<Text> {
@ApiStatus.Internal
public class LabelControllerElement extends AbstractWidget {
+ private List<OrderedText> wrappedText;
public LabelControllerElement(Dimension<Integer> dim) {
super(dim);
+ updateText();
}
@Override
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
- textRenderer.drawWithShadow(matrices, formatValue(), dim.x(), dim.centerY() - textRenderer.fontHeight / 2f, -1);
+ updateText();
+
+ int i = 0;
+ for (OrderedText text : wrappedText) {
+ textRenderer.drawWithShadow(matrices, text, dim.x(), dim.y() + getYPadding() + i * textRenderer.fontHeight, -1);
+ i++;
+ }
+ }
+
+ private int getYPadding() {
+ return 3;
+ }
+
+ private void updateText() {
+ wrappedText = textRenderer.wrapLines(formatValue(), dim.width());
+ dim.setHeight(wrappedText.size() * 9 + getYPadding() * 2);
}
}
}