From 2cf09178c37b2da3955b26979056eacfce8b81ac Mon Sep 17 00:00:00 2001
From: Rime <81419447+Emirlol@users.noreply.github.com>
Date: Sat, 16 Nov 2024 22:36:47 +0300
Subject: Fix offhand slot moving around (#1045)
* Fix offhand slot moving left each time another screen is displayed while in inventory
* Oops copied too much
* Javadoc improvements
* Remove unnecessary double ;
---
.../skyblock/item/SkyblockInventoryScreen.java | 27 ++++++++++++----------
1 file changed, 15 insertions(+), 12 deletions(-)
(limited to 'src/main/java')
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java
index fedb2ce8..084db5bb 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java
@@ -39,9 +39,9 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
/**
- * Opened here {@code de.hysky.skyblocker.mixins.MinecraftClientMixin#skyblocker$skyblockInventoryScreen}
- *
- * Book button is moved here {@code de.hysky.skyblocker.mixins.InventoryScreenMixin#skyblocker}
+ *
Adds equipment slots to the inventory screen and moves the offhand slot.
+ *Opened here {@link de.hysky.skyblocker.mixins.MinecraftClientMixin#skyblocker$skyblockInventoryScreen MinecraftClientMixin#skyblocker$skyblockInventoryScreen}
+ *Book button is moved here {@link de.hysky.skyblocker.mixins.InventoryScreenMixin#skyblocker$moveButton InventoryScreenMixin#skyblocker$moveButton}
*/ public class SkyblockInventoryScreen extends InventoryScreen { private static final Logger LOGGER = LoggerFactory.getLogger("Equipment"); @@ -91,7 +91,13 @@ public class SkyblockInventoryScreen extends InventoryScreen { })); } - @Init + @Override + public void onDisplayed() { + Slot slot = handler.slots.get(45); + ((SlotAccessor) slot).setX(slot.x + 21); + } + + @Init public static void initEquipment() { SkyblockEvents.PROFILE_CHANGE.register(((prevProfileId, profileId) -> { if (!prevProfileId.isEmpty()) CompletableFuture.runAsync(() -> save(prevProfileId)).thenRun(() -> load(profileId)); @@ -108,13 +114,10 @@ public class SkyblockInventoryScreen extends InventoryScreen { public SkyblockInventoryScreen(PlayerEntity player) { super(player); - SimpleInventory inventory = new SimpleInventory(Utils.isInTheRift() ? equipment_rift: equipment); - - Slot slot = handler.slots.get(45); - ((SlotAccessor) slot).setX(slot.x + 21); - for (int i = 0; i < 4; i++) { - equipmentSlots[i] = new EquipmentSlot(inventory, i, 77, 8 + i * 18); - } + SimpleInventory inventory = new SimpleInventory(Utils.isInTheRift() ? equipment_rift: equipment); + for (int i = 0; i < 4; i++) { + equipmentSlots[i] = new EquipmentSlot(inventory, i, 77, 8 + i * 18); + } } @Override @@ -137,7 +140,7 @@ public class SkyblockInventoryScreen extends InventoryScreen { for (Slot equipmentSlot : equipmentSlots) { boolean hovered = isPointWithinBounds(equipmentSlot.x, equipmentSlot.y, 16, 16, mouseX, mouseY); - if (hovered) context.drawGuiTexture(RenderLayer::getGuiTextured, HandledScreenAccessor.getSLOT_HIGHLIGHT_BACK_TEXTURE(), equipmentSlot.x - 4, equipmentSlot.y - 4, 24, 24);; + if (hovered) context.drawGuiTexture(RenderLayer::getGuiTextured, HandledScreenAccessor.getSLOT_HIGHLIGHT_BACK_TEXTURE(), equipmentSlot.x - 4, equipmentSlot.y - 4, 24, 24); drawSlot(context, equipmentSlot); -- cgit