diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index d676dc25..1e3f31c4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -1,14 +1,15 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.skyblock.BackpackPreview; import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup; -import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNavButton; import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.client.MinecraftClient; 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.screen.slot.Slot; import net.minecraft.text.Text; import org.jetbrains.annotations.Nullable; @@ -34,13 +35,13 @@ public abstract class HandledScreenMixin extends Screen { @Inject(method = "init()V", at = @At("TAIL")) private void init(CallbackInfo ci) { - // quicknav if (Utils.isSkyblock && SkyblockerConfig.get().general.quicknav.enableQuicknav) { String screenTitle = super.getTitle().getString().trim(); List<QuickNavButton> buttons = QuickNav.init(screenTitle); for (QuickNavButton button : buttons) super.addDrawableChild(button); - } + BackpackPreview.loadStorage((HandledScreen)(Object)this); + BackpackPreview.updateStorage((HandledScreen)(Object)this); } @Inject(at = @At("HEAD"), method = "keyPressed", cancellable = true) @@ -49,4 +50,17 @@ public abstract class HandledScreenMixin extends Screen { if (WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) WikiLookup.openWiki(focusedSlot); } } + + @Inject(at = @At("HEAD"), method = "drawMouseoverTooltip", cancellable = true) + public void drawMouseOverTooltip(MatrixStack matrices, int x, int y, CallbackInfo ci) { + String title = ((HandledScreen)(Object)this).getTitle().getString(); + if (Screen.hasShiftDown() && title.equals("Storage") && focusedSlot != null) { + if (BackpackPreview.renderPreview(matrices, focusedSlot.getIndex(), x, y)) ci.cancel(); + } + } + + @Inject(method = "tick", at = @At("TAIL")) + public void tick(CallbackInfo ci) { + BackpackPreview.tick(); + } } |