From fcee10e493e7f09639c2933e278ae81bdeee60b3 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Mon, 29 Jul 2024 00:23:17 +0200 Subject: Fix inventory buttons overlapping in storage overlay (also fixes skyblocker) --- .../nea/firmament/mixins/accessor/AccessorHandledScreen.java | 11 +++++++++++ .../nea/firmament/mixins/customgui/PatchHandledScreen.java | 1 - .../features/inventory/storageoverlay/StorageOverlayCustom.kt | 6 ++++++ .../features/inventory/storageoverlay/StorageOverlayScreen.kt | 4 +++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/moe/nea/firmament/mixins/accessor/AccessorHandledScreen.java b/src/main/java/moe/nea/firmament/mixins/accessor/AccessorHandledScreen.java index 2e9879d..4472586 100644 --- a/src/main/java/moe/nea/firmament/mixins/accessor/AccessorHandledScreen.java +++ b/src/main/java/moe/nea/firmament/mixins/accessor/AccessorHandledScreen.java @@ -21,14 +21,25 @@ public interface AccessorHandledScreen { @Accessor("backgroundWidth") int getBackgroundWidth_Firmament(); + @Accessor("backgroundWidth") + void setBackgroundWidth_Firmament(int newBackgroundWidth); + @Accessor("backgroundHeight") int getBackgroundHeight_Firmament(); + @Accessor("backgroundHeight") + void setBackgroundHeight_Firmament(int newBackgroundHeight); + @Accessor("x") int getX_Firmament(); + @Accessor("x") + void setX_Firmament(int newX); + @Accessor("y") int getY_Firmament(); + @Accessor("y") + void setY_Firmament(int newY); } diff --git a/src/main/java/moe/nea/firmament/mixins/customgui/PatchHandledScreen.java b/src/main/java/moe/nea/firmament/mixins/customgui/PatchHandledScreen.java index 59dc259..f77107e 100644 --- a/src/main/java/moe/nea/firmament/mixins/customgui/PatchHandledScreen.java +++ b/src/main/java/moe/nea/firmament/mixins/customgui/PatchHandledScreen.java @@ -27,7 +27,6 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; diff --git a/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayCustom.kt b/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayCustom.kt index a349c0f..3619f18 100644 --- a/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayCustom.kt +++ b/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayCustom.kt @@ -42,6 +42,12 @@ class StorageOverlayCustom( override fun onInit() { overview.init(MinecraftClient.getInstance(), screen.width, screen.height) + overview.init() + screen as AccessorHandledScreen + screen.x_Firmament = overview.measurements.x + screen.y_Firmament = overview.measurements.y + screen.backgroundWidth_Firmament = overview.measurements.totalWidth + screen.backgroundHeight_Firmament = overview.measurements.totalHeight } override fun isPointOverSlot(slot: Slot, xOffset: Int, yOffset: Int, pointX: Double, pointY: Double): Boolean { diff --git a/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayScreen.kt b/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayScreen.kt index c371eb4..62d9952 100644 --- a/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayScreen.kt +++ b/src/main/kotlin/moe/nea/firmament/features/inventory/storageoverlay/StorageOverlayScreen.kt @@ -48,12 +48,14 @@ class StorageOverlayScreen : Screen(Text.literal("")) { val y = height / 2 - (overviewHeight + PLAYER_HEIGHT) / 2 val playerX = width / 2 - PLAYER_WIDTH / 2 val playerY = y + overviewHeight - PLAYER_Y_INSET + val totalWidth = overviewWidth + val totalHeight = overviewWidth - PLAYER_Y_INSET + PLAYER_HEIGHT } var measurements = Measurements() var lastRenderedInnerHeight = 0 - override fun init() { + public override fun init() { super.init() pageWidthCount = StorageOverlay.TConfig.columns .coerceAtMost((width - PADDING) / (PAGE_WIDTH + PADDING)) -- cgit