diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-21 07:38:03 +0300 |
|---|---|---|
| committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-07-22 14:21:56 +0800 |
| commit | 8f540ffc0f2e6dc90f8c9a1ac249ff9185243d3c (patch) | |
| tree | 31866cf4f5a1723e092f0cbebe7dbbcca2209dba /src/main/java/de/hysky/skyblocker/mixins | |
| parent | 4c398333b9802a9000cc65d50ae4a2d13f300ca8 (diff) | |
| download | Skyblocker-8f540ffc0f2e6dc90f8c9a1ac249ff9185243d3c.tar.gz Skyblocker-8f540ffc0f2e6dc90f8c9a1ac249ff9185243d3c.tar.bz2 Skyblocker-8f540ffc0f2e6dc90f8c9a1ac249ff9185243d3c.zip | |
A lot of stuff.
- Refactored SlotTextAdders to take in ItemStack and int slotId rather than Slot
- Refactored the renderSlotText method from HandledScreenMixin into SlotTextManager and added an overloading function that takes in the itemstack, slot id, x and y and the previous function with the Slot parameter just delegates to it with the relevant fields from that Slot object
- As a result of the above 2 changes the logic in CommunityShopAdder had to be changed too, now it figures out the screen from the method calls to `getText` rather than the Slot's inventory.
- Fixed slot text not being rendered in backpack preview
- Added private constructor for BackpackPreview (because it's all static methods anyway)
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java index ca1cddf8..b8e15eb5 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java @@ -14,7 +14,6 @@ import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds; import de.hysky.skyblocker.skyblock.item.MuseumItemCache; import de.hysky.skyblocker.skyblock.item.WikiLookup; -import de.hysky.skyblocker.skyblock.item.slottext.SlotText; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextManager; import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview; import de.hysky.skyblocker.skyblock.item.tooltip.CompactorDeletorPreview; @@ -26,7 +25,6 @@ import de.hysky.skyblocker.utils.container.AbstractContainerSolver; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -335,31 +333,8 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen @Inject(method = "drawSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V")) private void skyblocker$drawSlotText(DrawContext context, Slot slot, CallbackInfo ci) { - List<SlotText> textList = SlotTextManager.getText(slot); - if (textList.isEmpty()) return; - MatrixStack matrices = context.getMatrices(); - - for (SlotText slotText : textList) { - matrices.push(); - matrices.translate(0.0f, 0.0f, 200.0f); - int length = textRenderer.getWidth(slotText.text()); - if (length > 16) { - matrices.scale(16.0f / length, 16.0f / length, 1.0f); //Make them fit in the slot. FYI, a slot is sized 16×16. - final float x = (slot.x * length / 16.0f) - slot.x; //Save in a variable to not recalculate - switch (slotText.position()) { - case TOP_LEFT, TOP_RIGHT -> matrices.translate(x, (slot.y * length / 16.0f) - slot.y, 0.0f); - case BOTTOM_LEFT, BOTTOM_RIGHT -> matrices.translate(x, ((slot.y + 16f - textRenderer.fontHeight + 2f + 0.7f) * length / 16.0f) - slot.y, 0.0f); - } - } else { - switch (slotText.position()) { - case TOP_LEFT -> { /*Do Nothing*/ } - case TOP_RIGHT -> matrices.translate(16f - length, 0.0f, 0.0f); - case BOTTOM_LEFT -> matrices.translate(0.0f, 16f - textRenderer.fontHeight + 2f, 0.0f); - case BOTTOM_RIGHT -> matrices.translate(16f - length, 16f - textRenderer.fontHeight + 2f, 0.0f); - } - } - context.drawText(textRenderer, slotText.text(), slot.x, slot.y, 0xFFFFFF, true); - matrices.pop(); + if (Utils.isOnSkyblock()) { + SlotTextManager.renderSlotText(context, textRenderer, slot); } } } |
