aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin
diff options
context:
space:
mode:
authorYasin <LifeIsAParadox@users.noreply.github.com>2022-01-30 03:10:54 +0100
committerGitHub <noreply@github.com>2022-01-30 03:10:54 +0100
commitc474866731e454fa6271e513dcde38b7ffe6c665 (patch)
tree3dd9bd61020d3e041a53214f37a82a2b6b5613bd /src/main/java/me/xmrvizzy/skyblocker/mixin
parentab002c93fd718875e1d9173dedfd89eeabcaa630 (diff)
parent49721021064fc691edfb960ced1496232c6f5eb6 (diff)
downloadSkyblocker-c474866731e454fa6271e513dcde38b7ffe6c665.tar.gz
Skyblocker-c474866731e454fa6271e513dcde38b7ffe6c665.tar.bz2
Skyblocker-c474866731e454fa6271e513dcde38b7ffe6c665.zip
Merge pull request #33 from KonaeAkira/master
Make the item list display in the recipe book
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java27
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java14
4 files changed, 61 insertions, 12 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java
new file mode 100644
index 00000000..ea497b75
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java
@@ -0,0 +1,17 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(HandledScreen.class)
+public interface HandledScreenAccessor {
+ @Accessor
+ int getX();
+ @Accessor
+ int getY();
+ @Accessor
+ int getBackgroundWidth();
+ @Accessor
+ int getBackgroundHeight();
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
index ef1f99fa..7dae036d 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java
@@ -1,7 +1,6 @@
package me.xmrvizzy.skyblocker.mixin;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-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;
@@ -13,6 +12,7 @@ import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
import java.util.List;
@Mixin(HandledScreen.class)
@@ -26,19 +26,10 @@ public abstract class HandledScreenMixin extends Screen {
@Inject(method = "init()V", at = @At("TAIL"))
private void init(CallbackInfo ci) {
- if (Utils.isSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) {
- super.addDrawableChild(new ItemListWidget((HandledScreen)(Object)this));
- }
-
// quicknav
if (Utils.isSkyblock && SkyblockerConfig.get().general.quicknav.enableQuicknav) {
- String title = super.getTitle().getString().trim();
- int left_x = (super.width - this.backgroundWidth) / 2 + 4;
- int right_x = (super.width + this.backgroundWidth) / 2 - 3;
- int top_y = (super.height - this.backgroundHeight) / 2 - 28;
- int bottom_y = (super.height + this.backgroundHeight) / 2 - 4;
- if (this.backgroundHeight > 166) --bottom_y; // why is this even a thing
- List<QuickNavButton> buttons = QuickNav.init(title, left_x, right_x, top_y, bottom_y);
+ String screenTitle = super.getTitle().getString().trim();
+ List<QuickNavButton> buttons = QuickNav.init(screenTitle);
for (QuickNavButton button : buttons) super.addDrawableChild(button);
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java
new file mode 100644
index 00000000..fcdbf706
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java
@@ -0,0 +1,27 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget;
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.minecraft.client.gui.screen.ingame.InventoryScreen;
+import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(InventoryScreen.class)
+public class InventoryScreenMixin {
+ @Redirect(
+ method = "",
+ at = @At(
+ value = "NEW",
+ target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget"
+ )
+ )
+ RecipeBookWidget constructor() {
+ if (Utils.isSkyblock && SkyblockerConfig.get().general.itemList.enableItemList)
+ return new ItemListWidget();
+ else
+ return new RecipeBookWidget();
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java
new file mode 100644
index 00000000..808b2950
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java
@@ -0,0 +1,14 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
+import net.minecraft.client.gui.widget.TextFieldWidget;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(RecipeBookWidget.class)
+public interface RecipeBookWidgetAccessor {
+ @Accessor
+ String getSearchText();
+ @Accessor
+ TextFieldWidget getSearchField();
+}