aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-09-15 00:18:36 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-09-15 00:18:36 -0400
commit3881303e47384cc0b619c9172fcef685f29a56ce (patch)
treeedc1d486352f39ea8d461c8fa45e3bee0b12abe5 /src/main/java/me/xmrvizzy/skyblocker/mixin
parent63f8b9fac7ecb5c37e32031cc6061cbd1c7612c5 (diff)
downloadSkyblocker-3881303e47384cc0b619c9172fcef685f29a56ce.tar.gz
Skyblocker-3881303e47384cc0b619c9172fcef685f29a56ce.tar.bz2
Skyblocker-3881303e47384cc0b619c9172fcef685f29a56ce.zip
Refactor CompactorDeletorPreview and add option
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java24
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/DrawContextInvoker.java3
2 files changed, 14 insertions, 13 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
index 48b85dbe..33532788 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
@@ -2,12 +2,11 @@ package me.xmrvizzy.skyblocker.mixin;
import me.xmrvizzy.skyblocker.SkyblockerMod;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.mixin.accessor.DrawContextInvoker;
-import me.xmrvizzy.skyblocker.skyblock.item.BackpackPreview;
import me.xmrvizzy.skyblocker.skyblock.experiment.ChronomatronSolver;
import me.xmrvizzy.skyblocker.skyblock.experiment.ExperimentSolver;
import me.xmrvizzy.skyblocker.skyblock.experiment.SuperpairsSolver;
import me.xmrvizzy.skyblocker.skyblock.experiment.UltrasequencerSolver;
+import me.xmrvizzy.skyblocker.skyblock.item.BackpackPreview;
import me.xmrvizzy.skyblocker.skyblock.item.CompactorDeletorPreview;
import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup;
import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry;
@@ -34,6 +33,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Map;
+import java.util.regex.Matcher;
@Mixin(HandledScreen.class)
public abstract class HandledScreenMixin extends Screen {
@@ -52,27 +52,30 @@ public abstract class HandledScreenMixin extends Screen {
}
}
- @SuppressWarnings("DataFlowIssue") // makes intellij be quiet about this.focusedSlot maybe being null. It's already null checked in mixined method.
+ @SuppressWarnings("DataFlowIssue")
+ // makes intellij be quiet about this.focusedSlot maybe being null. It's already null checked in mixined method.
@Inject(method = "drawMouseoverTooltip", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawTooltip(Lnet/minecraft/client/font/TextRenderer;Ljava/util/List;Ljava/util/Optional;II)V"), cancellable = true)
public void skyblocker$drawMouseOverTooltip(DrawContext context, int x, int y, CallbackInfo ci) {
- ItemStack stack = this.focusedSlot.getStack();
- String internalName = ItemRegistry.getInternalName(stack);
+ if (!Utils.isOnSkyblock()) return;
// Hide Empty Tooltips
- if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hideEmptyTooltips && this.focusedSlot != null && focusedSlot.getStack().getName().getString().equals(" ")) {
+ if (SkyblockerConfig.get().general.hideEmptyTooltips && focusedSlot.getStack().getName().getString().equals(" ")) {
ci.cancel();
}
// Backpack Preview
boolean shiftDown = SkyblockerConfig.get().general.backpackPreviewWithoutShift ^ Screen.hasShiftDown();
- if (this.client == null || this.client.player == null) return;
- if (shiftDown && this.getTitle().getString().equals("Storage") && this.focusedSlot.inventory != this.client.player.getInventory() && BackpackPreview.renderPreview(context, this.focusedSlot.getIndex(), x, y)) {
+ if (shiftDown && getTitle().getString().equals("Storage") && focusedSlot.inventory != client.player.getInventory() && BackpackPreview.renderPreview(context, focusedSlot.getIndex(), x, y)) {
ci.cancel();
}
// Compactor Preview
- if ((internalName.contains("PERSONAL_COMPACTOR_") || internalName.contains("PERSONAL_DELETOR_")) && CompactorDeletorPreview.displayCompactorDeletorPreview((DrawContextInvoker) context, x, y, stack)) {
- ci.cancel();
+ if (SkyblockerConfig.get().general.compactorDeletorPreview) {
+ ItemStack stack = focusedSlot.getStack();
+ Matcher matcher = CompactorDeletorPreview.NAME.matcher(ItemRegistry.getInternalName(stack));
+ if (matcher.matches() && CompactorDeletorPreview.drawPreview(context, stack, matcher.group("type"), matcher.group("size"), x, y)) {
+ ci.cancel();
+ }
}
}
@@ -87,7 +90,6 @@ public abstract class HandledScreenMixin extends Screen {
}
-
@Unique
private ItemStack skyblocker$experimentSolvers$getStack(Slot slot, ItemStack stack) {
ContainerSolver currentSolver = SkyblockerMod.getInstance().containerSolverManager.getCurrentSolver();
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/DrawContextInvoker.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/DrawContextInvoker.java
index 55ef0774..f1e5b684 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/DrawContextInvoker.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/DrawContextInvoker.java
@@ -12,7 +12,6 @@ import java.util.List;
@Mixin(DrawContext.class)
public interface DrawContextInvoker {
- @SuppressWarnings("unused")
- @Invoker("drawTooltip")
+ @Invoker
void invokeDrawTooltip(TextRenderer textRenderer, List<TooltipComponent> components, int x, int y, TooltipPositioner positioner);
}