aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/gui/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers')
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java22
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java1
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java1
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