CLASS net/minecraft/class_5676 net/minecraft/client/gui/widget/CyclingButtonWidget
	FIELD field_27961 HAS_ALT_DOWN Ljava/util/function/BooleanSupplier;
	FIELD field_27962 BOOLEAN_VALUES Ljava/util/List;
	FIELD field_27963 optionText Lnet/minecraft/class_2561;
	FIELD field_27964 index I
	FIELD field_27965 value Ljava/lang/Object;
	FIELD field_27966 values Lnet/minecraft/class_5676$class_5680;
	FIELD field_27967 valueToText Ljava/util/function/Function;
	FIELD field_27968 narrationMessageFactory Ljava/util/function/Function;
	FIELD field_27969 callback Lnet/minecraft/class_5676$class_5678;
	FIELD field_27970 tooltipFactory Lnet/minecraft/class_7172$class_7277;
	FIELD field_27971 optionTextOmitted Z
	METHOD <init> (IIIILnet/minecraft/class_2561;Lnet/minecraft/class_2561;ILjava/lang/Object;Lnet/minecraft/class_5676$class_5680;Ljava/util/function/Function;Ljava/util/function/Function;Lnet/minecraft/class_5676$class_5678;Lnet/minecraft/class_7172$class_7277;Z)V
		ARG 1 x
		ARG 2 y
		ARG 3 width
		ARG 4 height
		ARG 5 message
		ARG 6 optionText
		ARG 7 index
		ARG 8 value
		ARG 9 values
		ARG 10 valueToText
		ARG 11 narrationMessageFactory
		ARG 12 callback
		ARG 13 tooltipFactory
		ARG 14 optionTextOmitted
	METHOD method_32603 getValue ()Ljava/lang/Object;
	METHOD method_32604 (Ljava/lang/Boolean;)Lnet/minecraft/class_2561;
		ARG 0 value
	METHOD method_32605 setValue (Ljava/lang/Object;)V
		ARG 1 value
	METHOD method_32606 builder (Ljava/util/function/Function;)Lnet/minecraft/class_5676$class_5677;
		COMMENT Creates a new builder for a cycling button widget.
		ARG 0 valueToText
	METHOD method_32607 onOffBuilder (Lnet/minecraft/class_2561;Lnet/minecraft/class_2561;)Lnet/minecraft/class_5676$class_5677;
		COMMENT Creates a builder for a cycling button widget that only has {@linkplain Boolean#TRUE}
		COMMENT and {@linkplain Boolean#FALSE} values. It displays
		COMMENT {@code on} for {@code true} and {@code off} for {@code false}.
		COMMENT Its current initial value is {@code true}.
		ARG 0 on
		ARG 1 off
	METHOD method_32608 (Lnet/minecraft/class_2561;Lnet/minecraft/class_2561;Ljava/lang/Boolean;)Lnet/minecraft/class_2561;
		ARG 2 value
	METHOD method_32609 internalSetValue (Ljava/lang/Object;)V
		ARG 1 value
	METHOD method_32610 composeGenericOptionText (Ljava/lang/Object;)Lnet/minecraft/class_5250;
		ARG 1 value
	METHOD method_32611 getGenericNarrationMessage ()Lnet/minecraft/class_5250;
		COMMENT {@return a generic narration message for this button}
		COMMENT
		COMMENT <p>If the button omits the option text in rendering, such as showing only
		COMMENT "Value", this narration message will still read out the option like
		COMMENT "Option: Value".
	METHOD method_32612 cycle (I)V
		ARG 1 amount
	METHOD method_32613 onOffBuilder (Z)Lnet/minecraft/class_5676$class_5677;
		COMMENT Creates a builder for a cycling button widget that only has {@linkplain Boolean#TRUE}
		COMMENT and {@linkplain Boolean#FALSE} values. It displays
		COMMENT {@link net.minecraft.screen.ScreenTexts#ON} for {@code true} and
		COMMENT {@link net.minecraft.screen.ScreenTexts#OFF} for {@code false}.
		COMMENT Its current initial value is set to {@code initialValue}.
		ARG 0 initialValue
	METHOD method_32614 onOffBuilder ()Lnet/minecraft/class_5676$class_5677;
		COMMENT Creates a builder for a cycling button widget that only has {@linkplain Boolean#TRUE}
		COMMENT and {@linkplain Boolean#FALSE} values. It displays
		COMMENT {@link net.minecraft.screen.ScreenTexts#ON} for {@code true} and
		COMMENT {@link net.minecraft.screen.ScreenTexts#OFF} for {@code false}.
		COMMENT Its current initial value is {@code true}.
	METHOD method_37026 composeText (Ljava/lang/Object;)Lnet/minecraft/class_2561;
		ARG 1 value
	METHOD method_37027 getValue (I)Ljava/lang/Object;
		ARG 1 offset
	METHOD method_47403 refreshTooltip ()V
	CLASS class_5677 Builder
		COMMENT A builder to easily create cycling button widgets.
		COMMENT
		COMMENT Each builder must have at least one of its {@code values} methods called
		COMMENT with at least one default (non-alternative) value in the list before
		COMMENT building.
		COMMENT
		COMMENT @see CyclingButtonWidget#builder(Function)
		FIELD field_27972 initialIndex I
		FIELD field_27973 value Ljava/lang/Object;
		FIELD field_27974 valueToText Ljava/util/function/Function;
		FIELD field_27975 tooltipFactory Lnet/minecraft/class_7172$class_7277;
		FIELD field_27976 narrationMessageFactory Ljava/util/function/Function;
		FIELD field_27977 values Lnet/minecraft/class_5676$class_5680;
		FIELD field_27978 optionTextOmitted Z
		METHOD <init> (Ljava/util/function/Function;)V
			COMMENT Creates a builder.
			COMMENT
			COMMENT @see CyclingButtonWidget#builder(Function)
			ARG 1 valueToText
		METHOD method_32616 omitKeyText ()Lnet/minecraft/class_5676$class_5677;
			COMMENT Makes the built button omit the option and only display the current value
			COMMENT for its text, such as showing "Jump Mode" than "Mode: Jump Mode".
		METHOD method_32617 build (IIIILnet/minecraft/class_2561;Lnet/minecraft/class_5676$class_5678;)Lnet/minecraft/class_5676;
			COMMENT Builds a cycling button widget.
			COMMENT
			COMMENT @throws IllegalStateException if no {@code values} call is made, or the
			COMMENT {@code values} has no default values available
			ARG 1 x
			ARG 2 y
			ARG 3 width
			ARG 4 height
			ARG 5 optionText
			ARG 6 callback
		METHOD method_32618 tooltip (Lnet/minecraft/class_7172$class_7277;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the tooltip factory that provides tooltips for any of the values.
			COMMENT
			COMMENT <p>If this is not called, the values simply won't have tooltips.
			ARG 1 tooltipFactory
		METHOD method_32619 initially (Ljava/lang/Object;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the initial value of this button widget.
			COMMENT
			COMMENT <p>This is not effective if {@code value} is not in the default
			COMMENT values (i.e. excluding alternative values).
			COMMENT
			COMMENT <p>If this is not called, the initial value defaults to the first
			COMMENT value in the values list supplied.
			ARG 1 value
		METHOD method_32620 values (Ljava/util/Collection;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the option values for this button.
			ARG 1 values
		METHOD method_32621 values (Ljava/util/List;Ljava/util/List;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the option values for this button.
			COMMENT
			COMMENT <p>When the user presses the ALT key, the {@code alternatives} values
			COMMENT will be iterated; otherwise the {@code defaults} values will be iterated
			COMMENT when clicking the built button.
			ARG 1 defaults
			ARG 2 alternatives
		METHOD method_32622 values (Ljava/util/function/BooleanSupplier;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the option values for this button.
			COMMENT
			COMMENT <p>When {@code alternativeToggle} {@linkplain BooleanSupplier#getAsBoolean()
			COMMENT getAsBoolean} returns {@code true}, the {@code alternatives} values
			COMMENT will be iterated; otherwise the {@code defaults} values will be iterated
			COMMENT when clicking the built button.
			ARG 1 alternativeToggle
			ARG 2 defaults
			ARG 3 alternatives
		METHOD method_32623 narration (Ljava/util/function/Function;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Overrides the narration message of the button to build.
			COMMENT
			COMMENT <p>If this is not called, the button will use
			COMMENT {@link CyclingButtonWidget#getGenericNarrationMessage()} for narration
			COMMENT messages.
			ARG 1 narrationMessageFactory
		METHOD method_32624 values ([Ljava/lang/Object;)Lnet/minecraft/class_5676$class_5677;
			COMMENT Sets the option values for this button.
			ARG 1 values
		METHOD method_32625 (Ljava/lang/Object;)Lnet/minecraft/class_7919;
			ARG 0 value
		METHOD method_35723 build (IIIILnet/minecraft/class_2561;)Lnet/minecraft/class_5676;
			ARG 1 x
			ARG 2 y
			ARG 3 width
			ARG 4 height
			ARG 5 optionText
		METHOD method_35724 (Lnet/minecraft/class_5676;Ljava/lang/Object;)V
			ARG 0 button
			ARG 1 value
		METHOD method_42729 values (Lnet/minecraft/class_5676$class_5680;)Lnet/minecraft/class_5676$class_5677;
			ARG 1 values
	CLASS class_5678 UpdateCallback
		METHOD onValueChange (Lnet/minecraft/class_5676;Ljava/lang/Object;)V
			ARG 1 button
			ARG 2 value
	CLASS class_5680 Values
		METHOD method_32626 getCurrent ()Ljava/util/List;
		METHOD method_32627 of (Ljava/util/Collection;)Lnet/minecraft/class_5676$class_5680;
			ARG 0 values
		METHOD method_32628 of (Ljava/util/function/BooleanSupplier;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/class_5676$class_5680;
			ARG 0 alternativeToggle
			ARG 1 defaults
			ARG 2 alternatives
		METHOD method_32629 getDefaults ()Ljava/util/List;
