diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-28 19:28:52 +0300 | 
|---|---|---|
| committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 | 
| commit | a6148c72d4d53c916a73de979519109a378f2451 (patch) | |
| tree | 51fefdda01c7399ac4f95c82ed9533a84996ee4f /src/main/java/de/hysky/skyblocker/utils | |
| parent | 7769de8c37ca43da2fed332effddbe284f601b32 (diff) | |
| download | Skyblocker-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.java | 31 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/tooltip/TooltipManager.java | 4 | 
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() { | 
