aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-05-28 19:28:52 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-06-08 04:13:47 +0300
commita6148c72d4d53c916a73de979519109a378f2451 (patch)
tree51fefdda01c7399ac4f95c82ed9533a84996ee4f /src/main/java/de/hysky/skyblocker/utils
parent7769de8c37ca43da2fed332effddbe284f601b32 (diff)
downloadSkyblocker-a6148c72d4d53c916a73de979519109a378f2451.tar.gz
Skyblocker-a6148c72d4d53c916a73de979519109a378f2451.tar.bz2
Skyblocker-a6148c72d4d53c916a73de979519109a378f2451.zip
Refactor line smoothener
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/LineSmoothener.java31
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java4
2 files changed, 34 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/LineSmoothener.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/LineSmoothener.java
new file mode 100644
index 00000000..1096f7b0
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/LineSmoothener.java
@@ -0,0 +1,31 @@
+package de.hysky.skyblocker.utils.tooltip;
+
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+import java.util.List;
+
+public class LineSmoothener extends TooltipAdder {
+ //This is static to not create a new text object for each line in every item
+ private static final Text BUMPY_LINE = Text.literal("-----------------").formatted(Formatting.DARK_GRAY, Formatting.STRIKETHROUGH);
+
+ public static Text createSmoothLine() {
+ return Text.literal(" ").formatted(Formatting.DARK_GRAY, Formatting.STRIKETHROUGH, Formatting.BOLD);
+ }
+
+ protected LineSmoothener() {
+ super(Integer.MIN_VALUE);
+ }
+
+ @Override
+ public void addToTooltip(List<Text> lore, Slot focusedSlot) {
+ for (int i = 0; i < lore.size(); i++) {
+ List<Text> lineSiblings = lore.get(i).getSiblings();
+ //Compare the first sibling rather than the whole object as the style of the root object can change while visually staying the same
+ if (lineSiblings.size() == 1 && lineSiblings.getFirst().equals(BUMPY_LINE)) {
+ lore.set(i, createSmoothLine());
+ }
+ }
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
index 6a744283..7d32e3cd 100644
--- a/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java
@@ -11,7 +11,9 @@ import java.util.Comparator;
import java.util.List;
public class TooltipManager {
- private static final TooltipAdder[] adders = new TooltipAdder[]{};
+ private static final TooltipAdder[] adders = new TooltipAdder[]{
+ new LineSmoothener()
+ };
private static final ArrayList<TooltipAdder> currentScreenAdders = new ArrayList<>();
private TooltipManager() {