diff options
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers')
3 files changed, 23 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); } } } diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java index 7eb7310..fa763b7 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java @@ -25,6 +25,7 @@ public class SliderControllerElement extends ControllerWidget<ISliderController< this.min = min; this.max = max; this.interval = interval; + setDimension(dim); } @Override diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java b/src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java index f8cf802..9b549bc 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java @@ -28,6 +28,7 @@ public class StringControllerElement extends ControllerWidget<IStringController< inputFieldFocused = false; selectionLength = 0; emptyText = Text.literal("Click to type...").formatted(Formatting.GRAY); + setDimension(dim); } @Override |