aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/gui/controllers
diff options
context:
space:
mode:
authorxander <xander@isxander.dev>2022-09-02 11:16:48 +0100
committerxander <xander@isxander.dev>2022-09-02 11:16:48 +0100
commitdd24e4f8e84ed02913196c8ad6093275acc92219 (patch)
treea9b846f6efad8f122c8364c499b098d95a23034d /src/main/java/dev/isxander/yacl/gui/controllers
parent7c58fdd5aa54e88c1526c49adacaf97cf3810eba (diff)
downloadYetAnotherConfigLib-dd24e4f8e84ed02913196c8ad6093275acc92219.tar.gz
YetAnotherConfigLib-dd24e4f8e84ed02913196c8ad6093275acc92219.tar.bz2
YetAnotherConfigLib-dd24e4f8e84ed02913196c8ad6093275acc92219.zip
button options now consume YACLScreen
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers')
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java12
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java5
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java6
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java5
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java7
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java4
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java3
7 files changed, 23 insertions, 19 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 b632c5f..92ef3d5 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/ActionController.java
@@ -3,15 +3,17 @@ package dev.isxander.yacl.gui.controllers;
import dev.isxander.yacl.api.ButtonOption;
import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.utils.Dimension;
-import net.minecraft.client.gui.screen.Screen;
+import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.text.Text;
import org.jetbrains.annotations.ApiStatus;
+import java.util.function.Consumer;
+
/**
* Simple controller that simply runs the button action on press
* and renders a {@link} Text on the right.
*/
-public class ActionController implements Controller<Runnable> {
+public class ActionController implements Controller<Consumer<YACLScreen>> {
public static final Text DEFAULT_TEXT = Text.translatable("yacl.control.action.execute");
private final ButtonOption option;
@@ -59,13 +61,13 @@ public class ActionController implements Controller<Runnable> {
* {@inheritDoc}
*/
@Override
- public ControllerWidget<ActionController> provideWidget(Screen screen, Dimension<Integer> widgetDimension) {
+ public ControllerWidget<ActionController> provideWidget(YACLScreen screen, Dimension<Integer> widgetDimension) {
return new ActionControllerElement(this, screen, widgetDimension);
}
@ApiStatus.Internal
public static class ActionControllerElement extends ControllerWidget<ActionController> {
- public ActionControllerElement(ActionController control, Screen screen, Dimension<Integer> dim) {
+ public ActionControllerElement(ActionController control, YACLScreen screen, Dimension<Integer> dim) {
super(control, screen, dim);
}
@@ -73,7 +75,7 @@ public class ActionController implements Controller<Runnable> {
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (isMouseOver(mouseX, mouseY)) {
playDownSound();
- control.option().action().run();
+ control.option().action().accept(screen);
return true;
}
return false;
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 9effd26..6bf0b80 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/BooleanController.java
@@ -3,6 +3,7 @@ package dev.isxander.yacl.gui.controllers;
import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.Option;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
@@ -96,13 +97,13 @@ public class BooleanController implements Controller<Boolean> {
* {@inheritDoc}
*/
@Override
- public ControllerWidget<BooleanController> provideWidget(Screen screen, Dimension<Integer> widgetDimension) {
+ public ControllerWidget<BooleanController> provideWidget(YACLScreen screen, Dimension<Integer> widgetDimension) {
return new BooleanControllerElement(this, screen, widgetDimension);
}
@ApiStatus.Internal
public static class BooleanControllerElement extends ControllerWidget<BooleanController> {
- private BooleanControllerElement(BooleanController control, Screen screen, Dimension<Integer> dim) {
+ private BooleanControllerElement(BooleanController control, YACLScreen screen, Dimension<Integer> dim) {
super(control, screen, dim);
}
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 fe78b2e..77ac9ca 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/ControllerWidget.java
@@ -3,8 +3,8 @@ package dev.isxander.yacl.gui.controllers;
import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.utils.Dimension;
import dev.isxander.yacl.gui.AbstractWidget;
+import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.gui.DrawableHelper;
-import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.OrderedText;
@@ -17,14 +17,14 @@ public abstract class ControllerWidget<T extends Controller<?>> extends Abstract
protected final List<OrderedText> wrappedTooltip;
protected Dimension<Integer> dim;
- protected final Screen screen;
+ protected final YACLScreen screen;
protected boolean hovered = false;
protected float hoveredTicks = 0;
private int prevMouseX, prevMouseY;
- public ControllerWidget(T control, Screen screen, Dimension<Integer> dim) {
+ public ControllerWidget(T control, YACLScreen screen, Dimension<Integer> dim) {
this.control = control;
this.dim = dim;
this.screen = screen;
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java b/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java
index d88401c..f4c4006 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/EnumController.java
@@ -4,6 +4,7 @@ import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.NameableEnum;
import dev.isxander.yacl.api.Option;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text;
import org.jetbrains.annotations.ApiStatus;
@@ -71,7 +72,7 @@ public class EnumController<T extends Enum<T>> implements Controller<T> {
* {@inheritDoc}
*/
@Override
- public ControllerWidget<EnumController<T>> provideWidget(Screen screen, Dimension<Integer> widgetDimension) {
+ public ControllerWidget<EnumController<T>> provideWidget(YACLScreen screen, Dimension<Integer> widgetDimension) {
return new EnumControllerElement<>(this, screen, widgetDimension, enumClass.getEnumConstants());
}
@@ -79,7 +80,7 @@ public class EnumController<T extends Enum<T>> implements Controller<T> {
public static class EnumControllerElement<T extends Enum<T>> extends ControllerWidget<EnumController<T>> {
private final T[] values;
- public EnumControllerElement(EnumController<T> control, Screen screen, Dimension<Integer> dim, T[] values) {
+ public EnumControllerElement(EnumController<T> control, YACLScreen screen, Dimension<Integer> dim, T[] values) {
super(control, screen, dim);
this.values = values;
}
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 00df45b..1d78c78 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/TickBoxController.java
@@ -3,14 +3,13 @@ package dev.isxander.yacl.gui.controllers;
import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.Option;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.gui.YACLScreen;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import org.jetbrains.annotations.ApiStatus;
-import java.util.function.Function;
-
/**
* This controller renders a tickbox
*/
@@ -46,13 +45,13 @@ public class TickBoxController implements Controller<Boolean> {
* {@inheritDoc}
*/
@Override
- public ControllerWidget<TickBoxController> provideWidget(Screen screen, Dimension<Integer> widgetDimension) {
+ public ControllerWidget<TickBoxController> provideWidget(YACLScreen screen, Dimension<Integer> widgetDimension) {
return new TickBoxControllerElement(this, screen, widgetDimension);
}
@ApiStatus.Internal
public static class TickBoxControllerElement extends ControllerWidget<TickBoxController> {
- private TickBoxControllerElement(TickBoxController control, Screen screen, Dimension<Integer> dim) {
+ private TickBoxControllerElement(TickBoxController control, YACLScreen screen, Dimension<Integer> dim) {
super(control, screen, dim);
}
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java b/src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java
index 0f6c2d5..ede3456 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/slider/ISliderController.java
@@ -2,8 +2,8 @@ package dev.isxander.yacl.gui.controllers.slider;
import dev.isxander.yacl.api.Controller;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.gui.YACLScreen;
import dev.isxander.yacl.gui.controllers.ControllerWidget;
-import net.minecraft.client.gui.screen.Screen;
/**
* Simple custom slider implementation that shifts the current value across when shown.
@@ -48,7 +48,7 @@ public interface ISliderController<T extends Number> extends Controller<T> {
* {@inheritDoc}
*/
@Override
- default ControllerWidget<?> provideWidget(Screen screen, Dimension<Integer> widgetDimension) {
+ default ControllerWidget<?> provideWidget(YACLScreen screen, Dimension<Integer> widgetDimension) {
return new SliderControllerElement(this, screen, widgetDimension, min(), max(), interval());
}
}
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 997ba7d..8af2433 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
@@ -1,6 +1,7 @@
package dev.isxander.yacl.gui.controllers.slider;
import dev.isxander.yacl.api.utils.Dimension;
+import dev.isxander.yacl.gui.YACLScreen;
import dev.isxander.yacl.gui.controllers.ControllerWidget;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.screen.Screen;
@@ -18,7 +19,7 @@ public class SliderControllerElement extends ControllerWidget<ISliderController<
private boolean mouseDown = false;
- public SliderControllerElement(ISliderController<?> option, Screen screen, Dimension<Integer> dim, double min, double max, double interval) {
+ public SliderControllerElement(ISliderController<?> option, YACLScreen screen, Dimension<Integer> dim, double min, double max, double interval) {
super(option, screen, dim);
this.min = min;
this.max = max;