package wtf.sten.vault.ui;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.Component;

public class GlassButton extends Button {
	private final boolean primary;

	public GlassButton(int x, int y, int w, int h, Component label, boolean primary, OnPress onPress) {
		super(x, y, w, h, label, onPress, DEFAULT_NARRATION);
		this.primary = primary;
	}

	@Override
	protected void extractContents(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float partialTick) {
		int fill = primary ? (isHoveredOrFocused() ? 0xEE2A4DFF : 0xDD1E3AD9) : (isHoveredOrFocused() ? 0xCC1A1E2C : Glass.PANEL);
		Glass.panel(graphics, getX(), getY(), getWidth(), getHeight(), fill);
		if (primary) {
			graphics.fill(getX() + 2, getY() + 2, getX() + getWidth() - 2, getY() + 3, Glass.CYAN);
		}
		int text = primary ? Glass.INK : (isHoveredOrFocused() ? Glass.CYAN : Glass.INK);
		graphics.centeredText(Minecraft.getInstance().font, getMessage(), getX() + getWidth() / 2, getY() + (getHeight() - 8) / 2, text);
	}
}
