diff options
author | xander <xander@isxander.dev> | 2022-09-05 15:40:37 +0100 |
---|---|---|
committer | xander <xander@isxander.dev> | 2022-09-05 15:40:37 +0100 |
commit | dec91e06b77a1397779710ca47b61613617967c1 (patch) | |
tree | 8957bee3d26f3bbb7d4f8045c62c3a74f402a772 /src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java | |
parent | 2dc3dbbcb05af0a1ec2f65b3ff7b4770a37c382e (diff) | |
download | YetAnotherConfigLib-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.java | 22 |
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); } } } |