diff --git a/src/main/java/de/shiewk/widgets/WidgetSettingOption.java b/src/main/java/de/shiewk/widgets/WidgetSettingOption.java index d9067b3..dde15b7 100644 --- a/src/main/java/de/shiewk/widgets/WidgetSettingOption.java +++ b/src/main/java/de/shiewk/widgets/WidgetSettingOption.java @@ -6,6 +6,7 @@ import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.gui.widget.Widget; import net.minecraft.text.Text; +import java.util.function.BooleanSupplier; import java.util.function.Consumer; public abstract class WidgetSettingOption implements Drawable, Widget { @@ -14,6 +15,7 @@ public abstract class WidgetSettingOption implements Drawable, Widget { private int x = 0; private int y = 0; private boolean focused = false; + private BooleanSupplier shouldShow = WidgetUtils.TRUE_SUPPLIER; protected WidgetSettingOption(String id, Text name) { this.id = id; @@ -83,4 +85,13 @@ public abstract class WidgetSettingOption implements Drawable, Widget { public void setFocused(boolean focused) { this.focused = focused; } + + public boolean shouldShow(){ + return shouldShow.getAsBoolean(); + } + + public WidgetSettingOption setShowCondition(BooleanSupplier shouldShow){ + this.shouldShow = shouldShow; + return this; + } } diff --git a/src/main/java/de/shiewk/widgets/WidgetUtils.java b/src/main/java/de/shiewk/widgets/WidgetUtils.java index 2c9f42a..9e88000 100644 --- a/src/main/java/de/shiewk/widgets/WidgetUtils.java +++ b/src/main/java/de/shiewk/widgets/WidgetUtils.java @@ -1,7 +1,11 @@ package de.shiewk.widgets; +import java.util.function.BooleanSupplier; + public class WidgetUtils { + public static final BooleanSupplier TRUE_SUPPLIER = () -> true; + public static double translateToWidgetSettingsValue(double value, int max){ return (value / max) * 100; } diff --git a/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java b/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java index 7745fa7..b20b6e4 100644 --- a/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java +++ b/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java @@ -45,6 +45,7 @@ public class WidgetSettingsEditWidget extends ScrollableWidget { context.getMatrices().pop(); int y = textRenderer.fontHeight * 2 + this.height / 50 + 5; for (WidgetSettingOption setting : widget.getSettings().getCustomSettings()) { + if (!setting.shouldShow()) continue; if (this.width - setting.getWidth() > textRenderer.getWidth(setting.getName()) + 20){ setting.setX(this.getX() + this.width - setting.getWidth() - 5); setting.setY(y);