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