diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-05-29 18:49:55 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-08 04:13:47 +0300 |
commit | b157736114a1e6c5ace90a65a483c087326a5a1e (patch) | |
tree | 0b334a32d00810084fb074618abd1599daab8df0 /src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java | |
parent | 8ffde8a752b8a3bffa0015b1eb73fa449bd9e823 (diff) | |
download | Skyblocker-b157736114a1e6c5ace90a65a483c087326a5a1e.tar.gz Skyblocker-b157736114a1e6c5ace90a65a483c087326a5a1e.tar.bz2 Skyblocker-b157736114a1e6c5ace90a65a483c087326a5a1e.zip |
Add slot text adders, which render arbitrary text on arbitrary slots
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java index 0c413fc8..847416aa 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java @@ -14,6 +14,7 @@ import de.hysky.skyblocker.skyblock.garden.VisitorHelper; import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds; import de.hysky.skyblocker.skyblock.item.WikiLookup; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextManager; import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview; import de.hysky.skyblocker.skyblock.item.tooltip.CompactorDeletorPreview; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipManager; @@ -27,6 +28,7 @@ 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.item.TooltipData; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -309,4 +311,19 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen RenderSystem.disableBlend(); } } + + @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) { + Text text = SlotTextManager.getText(slot); + if (text == null) return; + MatrixStack matrices = context.getMatrices(); + matrices.push(); + matrices.translate(0.0f, 0.0f, 200.0f); + int length = textRenderer.getWidth(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 16x16. + } + context.drawText(textRenderer, text, length > 16 ? (int) (slot.x * length / 16f) : slot.x, length > 16 ? (int) ((slot.y + 9) * length / 16f) : slot.y, 0xFFFFFF, true); + matrices.pop(); + } } |