35 lines
1.4 KiB
Java
35 lines
1.4 KiB
Java
package zone.oat.gmodtitlescreen;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.font.TextRenderer;
|
|
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
|
|
import net.minecraft.client.gui.screen.narration.NarrationPart;
|
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
|
import net.minecraft.client.gui.widget.PressableTextWidget;
|
|
import net.minecraft.client.util.math.MatrixStack;
|
|
import net.minecraft.text.Text;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class PressableTextWithTooltipWidget extends PressableTextWidget {
|
|
protected final ButtonWidget.TooltipSupplier tooltipSupplier;
|
|
|
|
public PressableTextWithTooltipWidget(int x, int y, int width, int height, Text text, ButtonWidget.PressAction onPress, TextRenderer textRenderer, ButtonWidget.TooltipSupplier tooltipSupplier) {
|
|
super(x, y, width, height, text, onPress, textRenderer);
|
|
this.tooltipSupplier = tooltipSupplier;
|
|
}
|
|
|
|
@Override
|
|
public void renderTooltip(MatrixStack matrices, int mouseX, int mouseY) {
|
|
super.renderTooltip(matrices, mouseX, mouseY);
|
|
this.tooltipSupplier.onTooltip(this, matrices, mouseX, mouseY);
|
|
}
|
|
|
|
@Override
|
|
public void appendNarrations(NarrationMessageBuilder builder) {
|
|
super.appendNarrations(builder);
|
|
this.appendDefaultNarrations(builder);
|
|
this.tooltipSupplier.supply(text -> builder.put(NarrationPart.HINT, text));
|
|
}
|
|
}
|