From 4d977cc9764ecf0073650f126700f6ff638fa06b Mon Sep 17 00:00:00 2001 From: xander Date: Thu, 1 Sep 2022 11:58:49 +0100 Subject: javadoc! added LongSliderController renamed Control -> Controller add minecraft simple option binding constructor --- .../java/dev/isxander/yacl/api/Controller.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/dev/isxander/yacl/api/Controller.java (limited to 'src/main/java/dev/isxander/yacl/api/Controller.java') diff --git a/src/main/java/dev/isxander/yacl/api/Controller.java b/src/main/java/dev/isxander/yacl/api/Controller.java new file mode 100644 index 0000000..2c0a5e1 --- /dev/null +++ b/src/main/java/dev/isxander/yacl/api/Controller.java @@ -0,0 +1,30 @@ +package dev.isxander.yacl.api; + +import dev.isxander.yacl.api.utils.Dimension; +import dev.isxander.yacl.gui.controllers.ControllerWidget; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; +import org.jetbrains.annotations.ApiStatus; + +/** + * Provides a widget to control the option. + */ +public interface Controller { + /** + * Gets the dedicated {@link Option} for this controller + */ + Option option(); + + /** + * Gets the formatted value based on {@link Option#pendingValue()} + */ + Text formatValue(); + + /** + * Provides a widget to display + * + * @param screen parent screen + */ + @ApiStatus.Internal + ControllerWidget provideWidget(Screen screen, Dimension widgetDimension); +} -- cgit