30 lines
1.2 KiB
Java
30 lines
1.2 KiB
Java
package net.minecraft.client.gui.components;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.gui.Font;
|
|
import net.minecraft.client.gui.GuiGraphics;
|
|
import net.minecraft.network.chat.Component;
|
|
import net.minecraft.network.chat.ComponentUtils;
|
|
import net.minecraft.network.chat.Style;
|
|
import net.minecraft.util.Mth;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class PlainTextButton extends Button {
|
|
private final Font font;
|
|
private final Component message;
|
|
private final Component underlinedMessage;
|
|
|
|
public PlainTextButton(int x, int y, int width, int height, Component message, Button.OnPress onPress, Font font) {
|
|
super(x, y, width, height, message, onPress, DEFAULT_NARRATION);
|
|
this.font = font;
|
|
this.message = message;
|
|
this.underlinedMessage = ComponentUtils.mergeStyles(message.copy(), Style.EMPTY.withUnderlined(true));
|
|
}
|
|
|
|
@Override
|
|
public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
|
|
Component component = this.isHoveredOrFocused() ? this.underlinedMessage : this.message;
|
|
guiGraphics.drawString(this.font, component, this.getX(), this.getY(), 16777215 | Mth.ceil(this.alpha * 255.0F) << 24);
|
|
}
|
|
}
|