From 1b1d968d3d4248d9b7b943ab46656b3cc0a6e0c9 Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 15:53:12 +0100 Subject: Made item list use the vanilla recipe book --- .../skyblocker/mixin/HandledScreenMixin.java | 26 ---------------------- .../skyblocker/mixin/InventoryScreenMixin.java | 22 ++++++++++++++++++ .../skyblocker/mixin/RecipeBookWidgetAccessor.java | 16 +++++++++++++ 3 files changed, 38 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java deleted file mode 100644 index 0ed976f3..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ /dev/null @@ -1,26 +0,0 @@ -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.Screen; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.text.Text; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(HandledScreen.class) -public abstract class HandledScreenMixin extends Screen { - protected HandledScreenMixin(Text title) { - super(title); - } - - @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)); - } - } -} 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..c6c892a0 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -0,0 +1,22 @@ +package me.xmrvizzy.skyblocker.mixin; + +import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget; +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() { + return new ItemListWidget(); + } +} 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..ef8319a0 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java @@ -0,0 +1,16 @@ +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 + int getLeftOffset(); + @Accessor + TextFieldWidget getSearchField(); +} -- cgit From 4d8e146384a6d7f11b3126ffc8e43451e993c506 Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 16:01:18 +0100 Subject: Merge upstream --- .../skyblocker/mixin/HandledScreenMixin.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java new file mode 100644 index 00000000..9ae5bf92 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -0,0 +1,42 @@ +package me.xmrvizzy.skyblocker.mixin; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav; +import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNavButton; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +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) +public abstract class HandledScreenMixin extends Screen { + @Shadow protected int backgroundWidth; + @Shadow protected int backgroundHeight; + + protected HandledScreenMixin(Text title) { + super(title); + } + + @Inject(method = "init()V", at = @At("TAIL")) + private void init(CallbackInfo ci) { + // 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 buttons = QuickNav.init(title, left_x, right_x, top_y, bottom_y); + for (QuickNavButton button : buttons) super.addDrawableChild(button); + + } + } +} -- cgit From fd16a51c49ba9cd7f5d5af8614f92369666c97fe Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 16:20:50 +0100 Subject: Fix recipe book sometimes being rendered in the wrong position --- .../java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java index ef8319a0..808b2950 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java @@ -10,7 +10,5 @@ public interface RecipeBookWidgetAccessor { @Accessor String getSearchText(); @Accessor - int getLeftOffset(); - @Accessor TextFieldWidget getSearchField(); } -- cgit From d81a655b095175396a13dc6d9a2a60cde2f844a0 Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 17:13:58 +0100 Subject: Fix quicknav buttons not updating positions when opening recipe book --- .../skyblocker/mixin/HandledScreenAccessor.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') 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(); +} -- cgit From 4e8c2829717c6d220d4c0300f0f881ad0d702c6c Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 17:28:24 +0100 Subject: Change hub and dungeon_hub warp quicknav icons --- .../java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index 9ae5bf92..7dae036d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -28,13 +28,8 @@ public abstract class HandledScreenMixin extends Screen { private void init(CallbackInfo ci) { // 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 buttons = QuickNav.init(title, left_x, right_x, top_y, bottom_y); + String screenTitle = super.getTitle().getString().trim(); + List buttons = QuickNav.init(screenTitle); for (QuickNavButton button : buttons) super.addDrawableChild(button); } -- cgit From 49721021064fc691edfb960ced1496232c6f5eb6 Mon Sep 17 00:00:00 2001 From: KonaeAkira Date: Fri, 28 Jan 2022 17:32:54 +0100 Subject: Add item list toggle via config --- .../java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java index c6c892a0..fcdbf706 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -1,6 +1,8 @@ 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; @@ -17,6 +19,9 @@ public class InventoryScreenMixin { ) ) RecipeBookWidget constructor() { - return new ItemListWidget(); + if (Utils.isSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) + return new ItemListWidget(); + else + return new RecipeBookWidget(); } } -- cgit