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/ActionController.java5
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java1
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java3
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java17
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java24
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java9
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/string/StringControllerElement.java2
7 files changed, 35 insertions, 26 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java
index 6207f03..b8e2cd1 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java
@@ -108,6 +108,11 @@ public class ActionController implements Controller<BiConsumer<YACLScreen, Butto
}
@Override
+ public boolean canReset() {
+ return false;
+ }
+
+ @Override
public boolean matchesSearch(String query) {
return super.matchesSearch(query) || buttonString.contains(query);
}
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java b/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java
index cea6028..b7a77dd 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java
@@ -8,7 +8,6 @@ import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
-import org.jetbrains.annotations.ApiStatus;
import org.lwjgl.glfw.GLFW;
import java.util.function.Function;
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java b/src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java
index 11e33d0..0a83fbe 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/ColorController.java
@@ -3,6 +3,7 @@ package dev.isxander.yacl.gui.controllers;
import com.google.common.collect.ImmutableList;
import dev.isxander.yacl.api.Option;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.api.utils.MutableDimension;
import dev.isxander.yacl.gui.AbstractWidget;
import dev.isxander.yacl.gui.YACLScreen;
import dev.isxander.yacl.gui.controllers.string.IStringController;
@@ -102,7 +103,7 @@ public class ColorController implements IStringController<Color> {
public static class ColorControllerElement extends StringControllerElement {
private final ColorController colorController;
- protected Dimension<Integer> colorPreviewDim;
+ protected MutableDimension<Integer> colorPreviewDim;
private final List<Character> allowedChars;
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java
index 520efa7..c7f9e97 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java
@@ -40,7 +40,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
String nameString = name.getString();
boolean firstIter = true;
- while (textRenderer.getWidth(nameString) > dim.width() - getControlWidth() - getXPadding() - 7) {
+ while (textRenderer.getWidth(nameString) > getDimension().width() - getControlWidth() - getXPadding() - 7) {
nameString = nameString.substring(0, Math.max(nameString.length() - (firstIter ? 2 : 5), 0)).trim();
nameString += "...";
@@ -49,9 +49,9 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
Text shortenedName = Text.literal(nameString).fillStyle(name.getStyle());
- drawButtonRect(matrices, dim.x(), dim.y(), dim.xLimit(), dim.yLimit(), isHovered(), isAvailable());
+ drawButtonRect(matrices, getDimension().x(), getDimension().y(), getDimension().xLimit(), getDimension().yLimit(), isHovered(), isAvailable());
matrices.push();
- matrices.translate(dim.x() + getXPadding(), getTextY(), 0);
+ matrices.translate(getDimension().x() + getXPadding(), getTextY(), 0);
textRenderer.drawWithShadow(matrices, shortenedName, 0, 0, getValueColor());
matrices.pop();
@@ -64,7 +64,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
@Override
public void postRender(MatrixStack matrices, int mouseX, int mouseY, float delta) {
if (hovered) {
- YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, dim.centerX(), dim.y() - 5, dim.yLimit() + 5, screen.width, screen.height);
+ YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, getDimension().centerX(), getDimension().y() - 5, getDimension().yLimit() + 5, screen.width, screen.height);
}
}
@@ -75,7 +75,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
protected void drawValueText(MatrixStack matrices, int mouseX, int mouseY, float delta) {
Text valueText = getValueText();
matrices.push();
- matrices.translate(dim.xLimit() - textRenderer.getWidth(valueText) - getXPadding(), getTextY(), 0);
+ matrices.translate(getDimension().xLimit() - textRenderer.getWidth(valueText) - getXPadding(), getTextY(), 0);
textRenderer.drawWithShadow(matrices, valueText, 0, 0, getValueColor());
matrices.pop();
}
@@ -118,6 +118,11 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
return isAvailable() ? -1 : inactiveColor;
}
+ @Override
+ public boolean canReset() {
+ return true;
+ }
+
protected void drawOutline(MatrixStack matrices, int x1, int y1, int x2, int y2, int width, int color) {
DrawableHelper.fill(matrices, x1, y1, x2, y1 + width, color);
DrawableHelper.fill(matrices, x2, y1, x2 - width, y2, color);
@@ -126,7 +131,7 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
}
protected float getTextY() {
- return dim.y() + dim.height() / 2f - textRenderer.fontHeight / 2f;
+ return getDimension().y() + getDimension().height() / 2f - textRenderer.fontHeight / 2f;
}
@Override
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 98f69e1..8369680 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java
@@ -62,9 +62,9 @@ public class LabelController implements Controller<Text> {
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
updateText();
- float y = dim.y();
+ float y = getDimension().y();
for (OrderedText text : wrappedText) {
- textRenderer.drawWithShadow(matrices, text, dim.x(), y + getYPadding(), option().available() ? -1 : 0xFFA0A0A0);
+ textRenderer.drawWithShadow(matrices, text, getDimension().x(), y + getYPadding(), option().available() ? -1 : 0xFFA0A0A0);
y += textRenderer.fontHeight;
}
}
@@ -72,7 +72,7 @@ public class LabelController implements Controller<Text> {
@Override
public void postRender(MatrixStack matrices, int mouseX, int mouseY, float delta) {
if (isMouseOver(mouseX, mouseY)) {
- YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, dim.centerX(), dim.y() - 5, dim.yLimit() + 5, screen.width, screen.height);
+ YACLScreen.renderMultilineTooltip(matrices, textRenderer, wrappedTooltip, getDimension().centerX(), getDimension().y() - 5, getDimension().yLimit() + 5, screen.width, screen.height);
Style style = getStyle(mouseX, mouseY);
if (style != null && style.getHoverEvent() != null) {
@@ -90,8 +90,8 @@ public class LabelController implements Controller<Text> {
} else {
Text text = hoverEvent.getValue(HoverEvent.Action.SHOW_TEXT);
if (text != null) {
- MultilineText multilineText = MultilineText.create(textRenderer, text, dim.width());
- YACLScreen.renderMultilineTooltip(matrices, textRenderer, multilineText, dim.centerX(), dim.y(), dim.yLimit(), screen.width, screen.height);
+ MultilineText multilineText = MultilineText.create(textRenderer, text, getDimension().width());
+ YACLScreen.renderMultilineTooltip(matrices, textRenderer, multilineText, getDimension().centerX(), getDimension().y(), getDimension().yLimit(), screen.width, screen.height);
}
}
}
@@ -109,15 +109,15 @@ public class LabelController implements Controller<Text> {
}
protected Style getStyle(int mouseX, int mouseY) {
- if (!dim.isPointInside(mouseX, mouseY))
+ if (!getDimension().isPointInside(mouseX, mouseY))
return null;
- int x = mouseX - dim.x();
- int y = mouseY - dim.y() - getYPadding();
+ int x = mouseX - getDimension().x();
+ int y = mouseY - getDimension().y() - getYPadding();
int line = y / textRenderer.fontHeight;
- if (x < 0 || x > dim.xLimit()) return null;
- if (y < 0 || y > dim.yLimit()) return null;
+ if (x < 0 || x > getDimension().xLimit()) return null;
+ if (y < 0 || y > getDimension().yLimit()) return null;
if (line < 0 || line >= wrappedText.size()) return null;
return textRenderer.getTextHandler().getStyleAt(wrappedText.get(line), x);
@@ -128,8 +128,8 @@ public class LabelController implements Controller<Text> {
}
private void updateText() {
- wrappedText = textRenderer.wrapLines(formatValue(), dim.width());
- dim.setHeight(wrappedText.size() * textRenderer.fontHeight + getYPadding() * 2);
+ wrappedText = textRenderer.wrapLines(formatValue(), getDimension().width());
+ setDimension(getDimension().withHeight(wrappedText.size() * textRenderer.fontHeight + getYPadding() * 2));
}
private void updateTooltip() {
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java b/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java
index ece6bce..ff693a9 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java
@@ -8,7 +8,6 @@ import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
-import org.jetbrains.annotations.ApiStatus;
import org.lwjgl.glfw.GLFW;
/**
@@ -58,10 +57,10 @@ public class TickBoxController implements Controller<Boolean> {
@Override
protected void drawHoveredControl(MatrixStack matrices, int mouseX, int mouseY, float delta) {
int outlineSize = 10;
- int outlineX1 = dim.xLimit() - getXPadding() - outlineSize;
- int outlineY1 = dim.centerY() - outlineSize / 2;
- int outlineX2 = dim.xLimit() - getXPadding();
- int outlineY2 = dim.centerY() + outlineSize / 2;
+ int outlineX1 = getDimension().xLimit() - getXPadding() - outlineSize;
+ int outlineY1 = getDimension().centerY() - outlineSize / 2;
+ int outlineX2 = getDimension().xLimit() - getXPadding();
+ int outlineY2 = getDimension().centerY() + outlineSize / 2;
int color = getValueColor();
int shadowColor = multiplyColor(color, 0.25f);
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 8598172..0c3b7c9 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
@@ -205,7 +205,7 @@ public class StringControllerElement extends ControllerWidget<IStringController<
}
public int getMaxLength() {
- return dim.width() / 8 * 7;
+ return getDimension().width() / 8 * 7;
}
public int getSelectionStart() {