aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java269
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/accessor/SlotAccessor.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java48
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java33
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SliderWidget.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockItemRarity.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java (renamed from src/main/java/de/hysky/skyblocker/utils/render/gui/BarebonesPopupScreen.java)10
11 files changed, 208 insertions, 187 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index a8f22bbc..a1e1dadc 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -272,13 +272,6 @@ public class SkyblockerConfig {
public Object2ObjectOpenHashMap<String, CustomArmorAnimatedDyes.AnimatedDye> customAnimatedDyes = new Object2ObjectOpenHashMap<>();
}
- public static class FancyAuctionHouse {
- @SerialEntry
- public boolean enabled = true;
- @SerialEntry
- public boolean highlightCheapBIN = true;
- }
-
public static class TabHudConf {
@SerialEntry
public boolean tabHudEnabled = true;
@@ -416,138 +409,11 @@ public class SkyblockerConfig {
public boolean enableQuiverWarningAfterDungeon = true;
}
- public static class Hitbox {
- @SerialEntry
- public boolean oldFarmlandHitbox = false;
-
- @SerialEntry
- public boolean oldLeverHitbox = false;
- }
-
- public static class TitleContainer {
- @SerialEntry
- public float titleContainerScale = 100;
-
- @SerialEntry
- public int x = 540;
-
- @SerialEntry
- public int y = 10;
-
- @SerialEntry
- public Direction direction = Direction.HORIZONTAL;
-
- @SerialEntry
- public Alignment alignment = Alignment.MIDDLE;
- }
-
- public enum Direction {
- HORIZONTAL, VERTICAL;
-
- @Override
- public String toString() {
- return switch (this) {
- case HORIZONTAL -> "Horizontal";
- case VERTICAL -> "Vertical";
- };
- }
- }
-
- public enum Alignment {
- LEFT, RIGHT, MIDDLE;
-
- @Override
- public String toString() {
- return switch (this) {
- case LEFT -> "Left";
- case RIGHT -> "Right";
- case MIDDLE -> "Middle";
- };
- }
- }
-
- public static class TeleportOverlay {
- @SerialEntry
- public boolean enableTeleportOverlays = true;
-
- @SerialEntry
- public boolean enableWeirdTransmission = true;
-
- @SerialEntry
- public boolean enableInstantTransmission = true;
-
- @SerialEntry
- public boolean enableEtherTransmission = true;
-
- @SerialEntry
- public boolean enableSinrecallTransmission = true;
-
- @SerialEntry
- public boolean enableWitherImpact = true;
- }
-
- public static class FlameOverlay {
- @SerialEntry
- public int flameHeight = 100;
-
- @SerialEntry
- public int flameOpacity = 100;
- }
-
- public static class SearchOverlay {
- @SerialEntry
- public boolean enableBazaar = true;
-
- @SerialEntry
- public boolean enableAuctionHouse = true;
-
- @SerialEntry
- public boolean keepPreviousSearches = false;
-
- @SerialEntry
- public int maxSuggestions = 3;
-
- @SerialEntry
- public int historyLength = 3;
-
- @SerialEntry
- public boolean enableCommands = false;
-
- @SerialEntry
- public List<String> bazaarHistory = new ArrayList<>();
-
- @SerialEntry
- public List<String> auctionHistory = new ArrayList<>();
- }
-
- public static class RichPresence {
- @SerialEntry
- public boolean enableRichPresence = false;
-
- @SerialEntry
- public Info info = Info.LOCATION;
-
- @SerialEntry
- public boolean cycleMode = false;
-
- @SerialEntry
- public String customMessage = "Playing Skyblock";
- }
-
public static class ItemList {
@SerialEntry
public boolean enableItemList = true;
}
- public enum Average {
- ONE_DAY, THREE_DAY, BOTH;
-
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
- }
- }
-
public static class ItemTooltip {
@SerialEntry
public boolean enableNPCPrice = true;
@@ -580,6 +446,15 @@ public class SkyblockerConfig {
public boolean enableAccessoriesHelper = true;
}
+ public enum Average {
+ ONE_DAY, THREE_DAY, BOTH;
+
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
+ }
+ }
+
public static class ItemInfoDisplay {
@SerialEntry
public boolean attributeShardInfo = true;
@@ -661,6 +536,118 @@ public class SkyblockerConfig {
public boolean rareDungeonDropEffects = true;
}
+ public static class Hitbox {
+ @SerialEntry
+ public boolean oldFarmlandHitbox = false;
+
+ @SerialEntry
+ public boolean oldLeverHitbox = false;
+ }
+
+ public static class TitleContainer {
+ @SerialEntry
+ public float titleContainerScale = 100;
+
+ @SerialEntry
+ public int x = 540;
+
+ @SerialEntry
+ public int y = 10;
+
+ @SerialEntry
+ public Direction direction = Direction.HORIZONTAL;
+
+ @SerialEntry
+ public Alignment alignment = Alignment.MIDDLE;
+ }
+
+ public enum Direction {
+ HORIZONTAL, VERTICAL;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case HORIZONTAL -> "Horizontal";
+ case VERTICAL -> "Vertical";
+ };
+ }
+ }
+
+ public enum Alignment {
+ LEFT, RIGHT, MIDDLE;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case LEFT -> "Left";
+ case RIGHT -> "Right";
+ case MIDDLE -> "Middle";
+ };
+ }
+ }
+
+ public static class TeleportOverlay {
+ @SerialEntry
+ public boolean enableTeleportOverlays = true;
+
+ @SerialEntry
+ public boolean enableWeirdTransmission = true;
+
+ @SerialEntry
+ public boolean enableInstantTransmission = true;
+
+ @SerialEntry
+ public boolean enableEtherTransmission = true;
+
+ @SerialEntry
+ public boolean enableSinrecallTransmission = true;
+
+ @SerialEntry
+ public boolean enableWitherImpact = true;
+ }
+
+ public static class FlameOverlay {
+ @SerialEntry
+ public int flameHeight = 100;
+
+ @SerialEntry
+ public int flameOpacity = 100;
+ }
+
+ public static class SearchOverlay {
+ @SerialEntry
+ public boolean enableBazaar = true;
+
+ @SerialEntry
+ public boolean enableAuctionHouse = true;
+
+ @SerialEntry
+ public boolean keepPreviousSearches = false;
+
+ @SerialEntry
+ public int maxSuggestions = 3;
+
+ @SerialEntry
+ public int historyLength = 3;
+
+ @SerialEntry
+ public boolean enableCommands = false;
+
+ @SerialEntry
+ public List<String> bazaarHistory = new ArrayList<>();
+
+ @SerialEntry
+ public List<String> auctionHistory = new ArrayList<>();
+ }
+
+ public static class FancyAuctionHouse {
+ @SerialEntry
+ public boolean enabled = true;
+
+ @SerialEntry
+ public boolean highlightCheapBIN = true;
+ }
+
public static class Locations {
@SerialEntry
public Barn barn = new Barn();
@@ -1252,6 +1239,20 @@ public class SkyblockerConfig {
public int announcementScale = 3;
}
+ public static class RichPresence {
+ @SerialEntry
+ public boolean enableRichPresence = false;
+
+ @SerialEntry
+ public Info info = Info.LOCATION;
+
+ @SerialEntry
+ public boolean cycleMode = false;
+
+ @SerialEntry
+ public String customMessage = "Playing Skyblock";
+ }
+
public enum Info {
PURSE, BITS, LOCATION;
diff --git a/src/main/java/de/hysky/skyblocker/mixin/accessor/SlotAccessor.java b/src/main/java/de/hysky/skyblocker/mixin/accessor/SlotAccessor.java
index b8c5618f..ef11006c 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/accessor/SlotAccessor.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/accessor/SlotAccessor.java
@@ -7,10 +7,10 @@ import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(Slot.class)
public interface SlotAccessor {
-
@Mutable
@Accessor("x")
void setX(int x);
+
@Mutable
@Accessor("y")
void setY(int y);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
index 628c5bd5..d47fef05 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
@@ -9,6 +9,7 @@ import de.hysky.skyblocker.skyblock.auction.widgets.RarityWidget;
import de.hysky.skyblocker.skyblock.auction.widgets.SortWidget;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
+import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.render.gui.AbstractCustomHypixelGUI;
import it.unimi.dsi.fastutil.ints.Int2BooleanOpenHashMap;
import net.minecraft.client.MinecraftClient;
@@ -16,7 +17,6 @@ import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.ButtonWidget;
-import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.texture.Sprite;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerInventory;
@@ -30,6 +30,8 @@ import net.minecraft.util.Colors;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import org.lwjgl.glfw.GLFW;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.awt.*;
import java.util.ArrayList;
@@ -37,7 +39,8 @@ import java.util.List;
import java.util.function.Supplier;
public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseScreenHandler> {
- protected static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background.png");
+ private static final Logger LOGGER = LoggerFactory.getLogger(AuctionBrowserScreen.class);
+ private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/auctions_gui/browser/background.png");
private static final Identifier SCROLLER_TEXTURE = new Identifier("container/creative_inventory/scroller");
private static final Identifier up_arrow_tex = new Identifier(SkyblockerMod.NAMESPACE, "up_arrow_even"); // Put them in their own fields to avoid object allocation on each frame
@@ -129,7 +132,10 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
for (CategoryTabWidget categoryTabWidget : categoryTabWidgets) {
categoryTabWidget.render(context, mouseX, mouseY, delta);
}
- if (isWaitingForServer) context.drawText(textRenderer, "Waiting...", 0, 0, Colors.WHITE, true);
+ if (isWaitingForServer) {
+ String waiting = "Waiting for server...";
+ context.drawText(textRenderer, waiting, this.width - textRenderer.getWidth(waiting) - 5, this.height - textRenderer.fontHeight - 2, Colors.WHITE, true);
+ }
MatrixStack matrices = context.getMatrices();
matrices.push();
@@ -234,13 +240,13 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
}
}
case SORT_BUTTON_SLOT ->
- sortWidget.setCurrent(SortWidget.Option.get(getOrdinal(stack.getTooltip(client.player, TooltipContext.BASIC))));
+ sortWidget.setCurrent(SortWidget.Option.get(getOrdinal(ItemUtils.getNbtTooltips(stack))));
case AUCTION_TYPE_BUTTON_SLOT ->
- auctionTypeWidget.setCurrent(AuctionTypeWidget.Option.get(getOrdinal(stack.getTooltip(client.player, TooltipContext.BASIC))));
+ auctionTypeWidget.setCurrent(AuctionTypeWidget.Option.get(getOrdinal(ItemUtils.getNbtTooltips(stack))));
case RARITY_BUTTON_SLOT -> {
- List<Text> tooltip = stack.getTooltip(client.player, TooltipContext.BASIC);
+ List<Text> tooltip = ItemUtils.getNbtTooltips(stack);
int ordinal = getOrdinal(tooltip);
- String split = tooltip.get(ordinal + 2).getString().substring(2);
+ String split = tooltip.get(ordinal + 1).getString().substring(2);
rarityWidget.setText(tooltip.subList(1, tooltip.size() - 3), split);
}
case RESET_BUTTON_SLOT -> {
@@ -248,7 +254,7 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
resetFiltersButton.active = handler.getSlot(slotId).getStack().isOf(Items.ANVIL);
}
case SEARCH_BUTTON_SLOT -> {
- List<Text> tooltipSearch = stack.getTooltip(client.player, TooltipContext.BASIC);
+ List<Text> tooltipSearch = ItemUtils.getNbtTooltips(stack);
for (Text text : tooltipSearch) {
String string = text.getString();
if (string.contains("Filtered:")) {
@@ -265,7 +271,7 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
CategoryTabWidget categoryTabWidget = categoryTabWidgets.get(slotId / 9);
categoryTabWidget.setSlotId(slotId);
categoryTabWidget.setIcon(handler.getSlot(slotId).getStack());
- List<Text> tooltipDefault = handler.getSlot(slotId).getStack().getTooltip(client.player, TooltipContext.BASIC);
+ List<Text> tooltipDefault = ItemUtils.getNbtTooltips(handler.getSlot(slotId).getStack());
for (int j = tooltipDefault.size() - 1; j >= 0; j--) {
String lowerCase = tooltipDefault.get(j).getString().toLowerCase();
if (lowerCase.contains("currently")) {
@@ -277,8 +283,8 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
} else categoryTabWidget.setToggled(false);
}
} else if (slotId > 9 && slotId < (handler.getRows() - 1) * 9 && slotId % 9 > 1 && slotId % 9 < 8) {
- List<Text> tooltip = stack.getTooltip(client.player, TooltipContext.BASIC);
if (!SkyblockerConfigManager.get().general.fancyAuctionHouse.highlightCheapBIN) return;
+ List<Text> tooltip = ItemUtils.getNbtTooltips(stack);
for (int k = tooltip.size() - 1; k >= 0; k--) {
Text text = tooltip.get(k);
String string = text.getString();
@@ -287,7 +293,7 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
if (split.length < 2) continue;
String coins = split[1].replace(",", "").replace("coins", "").trim();
try {
- int parsed = Integer.parseInt(coins);
+ long parsed = Long.parseLong(coins);
String name = ItemTooltip.getInternalNameFromNBT(stack, false);
String internalID = ItemTooltip.getInternalNameFromNBT(stack, true);
String neuName = name;
@@ -300,7 +306,8 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
else {
isSlotHighlighted.put(slotId, jsonElement.getAsDouble() > parsed);
}
- } catch (NumberFormatException ignored) {
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker Fancy Auction House] Failed to parse BIN price", e);
}
}
}
@@ -324,9 +331,9 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
private static int getOrdinal(List<Text> tooltip) {
int ordinal = 0;
- for (int j = 0; j < tooltip.size() - 3; j++) {
- if (j + 2 >= tooltip.size()) break;
- if (tooltip.get(j + 2).getString().contains("▶")) {
+ for (int j = 0; j < tooltip.size() - 4; j++) {
+ if (j + 1 >= tooltip.size()) break;
+ if (tooltip.get(j + 1).getString().contains("▶")) {
ordinal = j;
break;
}
@@ -341,14 +348,15 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
private void parsePage(ItemStack stack) {
assert client != null;
- List<Text> tooltip = stack.getTooltip(client.player, TooltipContext.BASIC);
- String str = tooltip.get(1).getString().trim();
- str = str.substring(1, str.length() - 1); // remove parentheses
- String[] parts = str.split("/"); // split the string
try {
+ List<Text> tooltip = ItemUtils.getNbtTooltips(stack);
+ String str = tooltip.get(0).getString().trim();
+ str = str.substring(1, str.length() - 1); // remove parentheses
+ String[] parts = str.split("/"); // split the string
currentPage = Integer.parseInt(parts[0].replace(",", "")); // parse current page
totalPages = Integer.parseInt(parts[1].replace(",", "")); // parse total
- } catch (NumberFormatException ignored) {
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker Fancy Auction House] Failed to parse page arrow", e);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java
index a365b799..a8b30a50 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionViewScreen.java
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.skyblock.auction;
import de.hysky.skyblocker.SkyblockerMod;
+import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.render.gui.AbstractCustomHypixelGUI;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.PopupScreen;
@@ -8,7 +9,6 @@ import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.DirectionalLayoutWidget;
import net.minecraft.client.gui.widget.SimplePositioningWidget;
import net.minecraft.client.gui.widget.TextWidget;
-import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemStack;
@@ -198,18 +198,18 @@ public class AuctionViewScreen extends AbstractCustomHypixelGUI<AuctionHouseScre
if (priceParsed) return;
if (stack.isOf(Items.POISONOUS_POTATO)) {
changeState(BuyState.CANT_AFFORD);
- getPriceFromTooltip(stack.getTooltip(client.player, TooltipContext.BASIC));
+ getPriceFromTooltip(ItemUtils.getNbtTooltips(stack));
buySlotID = slotId;
} else if (stack.isOf(Items.GOLD_NUGGET)) {
changeState(BuyState.AFFORD);
- getPriceFromTooltip(stack.getTooltip(client.player, TooltipContext.BASIC));
+ getPriceFromTooltip(ItemUtils.getNbtTooltips(stack));
buySlotID = slotId;
} else if (stack.isOf(Items.GOLD_BLOCK)) {
changeState(BuyState.TOP_BID);
- getPriceFromTooltip(stack.getTooltip(client.player, TooltipContext.BASIC));
+ getPriceFromTooltip(ItemUtils.getNbtTooltips(stack));
buySlotID = slotId;
} else if (stack.isOf(Items.NAME_TAG)) {
- getPriceFromTooltip(stack.getTooltip(client.player, TooltipContext.BASIC));
+ getPriceFromTooltip(ItemUtils.getNbtTooltips(stack));
changeProfile = true;
buySlotID = slotId;
}
@@ -264,7 +264,7 @@ public class AuctionViewScreen extends AbstractCustomHypixelGUI<AuctionHouseScre
return Optional.ofNullable(res);
}, Style.EMPTY).ifPresent(s -> stringAtomicReference.set(stringAtomicReference.get() + s));
}
- //System.out.println("Experiment: " + stringAtomicReference.get());
+
if (priceString == null) priceString = stringAtomicReference.get();
if (minBid != null) this.minBid = minBid;
else this.minBid = priceString;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java
index 86d5c44b..6b90b86c 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java
@@ -1,6 +1,6 @@
package de.hysky.skyblocker.skyblock.auction;
-import de.hysky.skyblocker.utils.render.gui.BarebonesPopupScreen;
+import de.hysky.skyblocker.utils.render.gui.AbstractPopupScreen;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
@@ -11,7 +11,7 @@ import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW;
-public class EditBidPopup extends BarebonesPopupScreen {
+public class EditBidPopup extends AbstractPopupScreen {
private DirectionalLayoutWidget layout = DirectionalLayoutWidget.vertical();
private final String minimumBid;
private final SignBlockEntity signBlockEntity;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java
index f200179a..03d91780 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/CategoryTabWidget.java
@@ -34,14 +34,11 @@ public class CategoryTabWidget extends ToggleButtonWidget {
Identifier identifier = textures.get(true, this.toggled);
int x = getX();
if (toggled) x -= 2;
- //RenderSystem.disableDepthTest();
context.drawGuiTexture(identifier, x, this.getY(), this.width, this.height);
- //RenderSystem.enableDepthTest();
context.drawItem(icon, x + 9, getY() + 5);
if (isMouseOver(mouseX, mouseY)) {
context.getMatrices().push();
- //context.getMatrices().translate(0, 0, 500f);
context.drawTooltip(MinecraftClient.getInstance().textRenderer, icon.getTooltip(MinecraftClient.getInstance().player, TooltipContext.BASIC), mouseX, mouseY);
context.getMatrices().pop();
}
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
index a5bc34a3..b6bd42a9 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/RarityWidget.java
@@ -2,6 +2,8 @@ package de.hysky.skyblocker.skyblock.auction.widgets;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.skyblock.auction.SlotClickHandler;
+import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds;
+import de.hysky.skyblocker.skyblock.item.SkyblockItemRarity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
@@ -9,9 +11,11 @@ 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.Formatting;
import net.minecraft.util.Identifier;
import java.util.List;
+import java.util.Map;
public class RarityWidget extends ClickableWidget {
@@ -30,7 +34,6 @@ public class RarityWidget extends ClickableWidget {
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);
@@ -40,16 +43,15 @@ public class RarityWidget extends ClickableWidget {
// Text
TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
int textWidth = textRenderer.getWidth(current);
- int color = 0xFFEAEAEA;
if (textWidth > 34) {
+ float scale = 34f / textWidth;
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.translate(0, 5.5, 0);
+ matrices.scale(scale, scale, 1);
+ context.drawCenteredTextWithShadow(textRenderer, current, (int) (24 / scale), -textRenderer.fontHeight / 2, color);
matrices.pop();
} else {
- context.drawText(textRenderer, current, 7, 2, color, false);
+ context.drawCenteredTextWithShadow(textRenderer, current, 24, 2, color);
}
matrices.pop();
@@ -57,11 +59,11 @@ public class RarityWidget extends ClickableWidget {
}
- private boolean isOnRightArrow(int mouseX) {
+ private boolean isOnRightArrow(double mouseX) {
return isHovered() && mouseX - getX() > 40;
}
- private boolean isOnLeftArrow(int mouseX) {
+ private boolean isOnLeftArrow(double mouseX) {
return isHovered() && mouseX - getX() < 7;
}
@@ -76,18 +78,27 @@ public class RarityWidget extends ClickableWidget {
private List<Text> tooltip = List.of();
private String current = "?";
+ private int color = 0xFFEAEAEA;
public void setText(List<Text> tooltip, String current) {
this.tooltip = tooltip;
this.current = current;
+ for (Map.Entry<String, SkyblockItemRarity> rarity : ItemRarityBackgrounds.LORE_RARITIES.entrySet()) {
+ if (current.toUpperCase().contains(rarity.getKey())) {
+ this.color = rarity.getValue().color | 0xFF000000;
+ return;
+ }
+ }
+ //noinspection DataFlowIssue
+ this.color = Formatting.GRAY.getColorValue() | 0xFF000000;
}
@Override
public void onClick(double mouseX, double mouseY) {
if (slotId == -1) return;
- if (isOnLeftArrow((int) mouseX)) {
+ if (isOnLeftArrow(mouseX)) {
onClick.click(slotId, 1);
- } else if (isOnRightArrow((int) mouseX)) {
+ } else if (isOnRightArrow(mouseX)) {
onClick.click(slotId, 0);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SliderWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SliderWidget.java
index 549980ae..22fa1ad8 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SliderWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/widgets/SliderWidget.java
@@ -53,7 +53,6 @@ public class SliderWidget<E extends Enum<E> & SliderWidget.OptionInfo> extends C
int optionWidth = current.getOptionSize()[0];
int optionHeight = current.getOptionSize()[1];
- //context.drawText(parent.getTextRender(), String.valueOf(slotId), 0, -9, Colors.RED, true);
context.drawTexture(current.getBackTexture(), 0, 0, 0, 0, getWidth(), getHeight(), getWidth(), getHeight());
context.drawTexture(current.getOptionTexture(), x, y, 0, 0, optionWidth, optionHeight, optionWidth, optionHeight);
if (isHovered()) {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java
index c9cdb99a..d4bf3d52 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java
@@ -26,7 +26,7 @@ import net.minecraft.text.Text;
public class ItemRarityBackgrounds {
private static final SkyblockerConfig.ItemInfoDisplay CONFIG = SkyblockerConfigManager.get().general.itemInfoDisplay;
private static final Supplier<Sprite> SPRITE = () -> MinecraftClient.getInstance().getGuiAtlasManager().getSprite(CONFIG.itemRarityBackgroundStyle.tex);
- private static final ImmutableMap<String, SkyblockItemRarity> LORE_RARITIES = ImmutableMap.ofEntries(
+ public static final ImmutableMap<String, SkyblockItemRarity> LORE_RARITIES = ImmutableMap.ofEntries(
Map.entry("ADMIN", SkyblockItemRarity.ADMIN),
Map.entry("ULTIMATE", SkyblockItemRarity.ULTIMATE),
Map.entry("SPECIAL", SkyblockItemRarity.SPECIAL), //Very special is the same color so this will cover it
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockItemRarity.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockItemRarity.java
index 4addeac6..60bda976 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockItemRarity.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockItemRarity.java
@@ -15,16 +15,17 @@ public enum SkyblockItemRarity {
UNCOMMON(Formatting.GREEN),
COMMON(Formatting.WHITE);
+ public final int color;
public final float r;
public final float g;
public final float b;
SkyblockItemRarity(Formatting formatting) {
- @SuppressWarnings("DataFlowIssue")
- int rgb = formatting.getColorValue();
+ //noinspection DataFlowIssue
+ this.color = formatting.getColorValue();
- this.r = ((rgb >> 16) & 0xFF) / 255f;
- this.g = ((rgb >> 8) & 0xFF) / 255f;
- this.b = (rgb & 0xFF) / 255f;
+ this.r = ((color >> 16) & 0xFF) / 255f;
+ this.g = ((color >> 8) & 0xFF) / 255f;
+ this.b = (color & 0xFF) / 255f;
}
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/BarebonesPopupScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java
index 56b07966..2bd15955 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/gui/BarebonesPopupScreen.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractPopupScreen.java
@@ -11,11 +11,11 @@ import net.minecraft.util.Identifier;
/**
* A more bare-bones version of Vanilla's Popup Screen. Meant to be extended.
*/
-public class BarebonesPopupScreen extends Screen {
+public class AbstractPopupScreen extends Screen {
private static final Identifier BACKGROUND_TEXTURE = new Identifier("popup/background");
private final Screen backgroundScreen;
- protected BarebonesPopupScreen(Text title, Screen backgroundScreen) {
+ protected AbstractPopupScreen(Text title, Screen backgroundScreen) {
super(title);
this.backgroundScreen = backgroundScreen;
}
@@ -44,8 +44,12 @@ public class BarebonesPopupScreen extends Screen {
@Override
protected void init() {
super.init();
- this.backgroundScreen.resize(this.client, width, height);
+ initTabNavigation();
+ }
+ @Override
+ protected void initTabNavigation() {
+ this.backgroundScreen.resize(this.client, this.width, this.height);
}
@Override