diff options
author | vicisacat <victor.branchu@gmail.com> | 2024-03-22 22:02:46 +0100 |
---|---|---|
committer | vicisacat <victor.branchu@gmail.com> | 2024-04-12 17:18:23 +0200 |
commit | 5b258a6cd798678b2cb98be029443c5048496a86 (patch) | |
tree | 1c3809d2626ca50d0bea4f55679a67c37ca0cc83 /src/main/java/de/hysky/skyblocker/skyblock/auction/widgets | |
parent | af46b0c6b8d38d876e59e523d4af4c939053a988 (diff) | |
download | Skyblocker-5b258a6cd798678b2cb98be029443c5048496a86.tar.gz Skyblocker-5b258a6cd798678b2cb98be029443c5048496a86.tar.bz2 Skyblocker-5b258a6cd798678b2cb98be029443c5048496a86.zip |
rebasing1
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/auction/widgets')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java new file mode 100644 index 00000000..1affdc0c --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java @@ -0,0 +1,94 @@ +package de.hysky.skyblocker.skyblock.auction.widgets; + +import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.skyblock.auction.SlotClickHandler; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; +import net.minecraft.client.gui.widget.ClickableWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import java.util.List; + +public class RarityWidget extends ClickableWidget { + + private static final Identifier HOVER_TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/hover.png"); + private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/rarity_widget/background.png"); + private final SlotClickHandler onClick; + private int slotId = -1; + + public RarityWidget(int x, int y, SlotClickHandler onClick) { + super(x, y, 48, 11, Text.literal("rarity selector thing, hi mom")); + this.onClick = onClick; + } + + @Override + protected void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { + MatrixStack matrices = context.getMatrices(); + matrices.push(); + matrices.translate(getX(), getY(), 0); + //context.drawText(parent.getTextRender(), String.valueOf(slotId), 0, -9, Colors.RED, true); + boolean onLeftArrow = isOnLeftArrow(mouseX); + boolean onRightArrow = isOnRightArrow(mouseX); + context.drawTexture(TEXTURE, 0, 0, 0, 0, 48, 11, 48, 11); + if (onLeftArrow) context.drawTexture(HOVER_TEXTURE, 0, 0, 0, 0, 6, 11, 6, 11); + if (onRightArrow) context.drawTexture(HOVER_TEXTURE, 42, 0, 0, 0, 6, 11, 6, 11); + + // Text + TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + int textWidth = textRenderer.getWidth(current); + int color = 0xFFEAEAEA; + if (textWidth > 34) { + matrices.push(); + //matrices.translate(-7-getX(), -5.5f-getY(), 0); + matrices.translate(7, 5.5f, 0); + matrices.scale(34.f/textWidth, 34.f/textWidth, 1.f); + context.drawText(textRenderer, current, 0, -textRenderer.fontHeight/2, color, false); + matrices.pop(); + } else { + context.drawText(textRenderer, current, 7, 2, color, false); + } + + matrices.pop(); + if (!onLeftArrow && !onRightArrow && isHovered()) context.drawTooltip(textRenderer, tooltip, mouseX, mouseY); + + } + + private boolean isOnRightArrow(int mouseX) { + return isHovered() && mouseX - getX() > 40; + } + + private boolean isOnLeftArrow(int mouseX) { + return isHovered() && mouseX - getX() < 7; + } + + @Override + protected void appendClickableNarrations(NarrationMessageBuilder builder) { + + } + + public void setSlotId(int slotId) { + this.slotId = slotId; + } + + private List<Text> tooltip = List.of(); + private String current = "?"; + + public void setText(List<Text> tooltip, String current) { + this.tooltip = tooltip; + this.current = current; + } + + @Override + public void onClick(double mouseX, double mouseY) { + if (slotId == -1) return; + if (isOnLeftArrow((int) mouseX)) { + onClick.click(slotId, 1); + } else if (isOnRightArrow((int) mouseX)) { + onClick.click(slotId, 0); + } + } +} |