new custom tooltipped gui widgets

This commit is contained in:
ZtereoHYPE 2023-09-16 02:44:20 +02:00
parent 296315aa2a
commit ddfd0fc554
2 changed files with 58 additions and 0 deletions

View file

@ -0,0 +1,25 @@
package codes.ztereohype.nicerskies.gui.widget;
import net.minecraft.client.gui.components.Checkbox;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.network.chat.Component;
import java.util.function.Consumer;
public class TooltippedCheckbox extends Checkbox {
private final Consumer<Boolean> onPress;
public TooltippedCheckbox(int i, int j, int k, int l, Component component, boolean bl, Consumer<Boolean> onPress, Tooltip tooltip) {
super(i, j, k, l, component, bl);
this.onPress = onPress;
this.setTooltip(tooltip);
}
@Override
public void onPress() {
super.onPress();
onPress.accept(this.selected());
}
}

View file

@ -0,0 +1,33 @@
package codes.ztereohype.nicerskies.gui.widget;
import net.minecraft.client.gui.components.AbstractSliderButton;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.network.chat.Component;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
public class TooltippedSliderButton extends AbstractSliderButton {
private final Function<Double, Component> sliderMoved;
private final Consumer<Double> sliderReleased;
public TooltippedSliderButton(int x, int y, int width, int height, Component text, double value, Function<Double, Component> sliderMoved, Consumer<Double> sliderReleased, Tooltip tooltip) {
super(x, y, width, height, text, value);
this.sliderMoved = sliderMoved;
this.sliderReleased = sliderReleased;
this.setTooltip(tooltip);
}
@Override
protected void updateMessage() {
this.setMessage(sliderMoved.apply(Double.valueOf(value)));
}
@Override
protected void applyValue() {
sliderReleased.accept(Double.valueOf(value));
}
}