Skip to content

Commit 4118102

Browse files
committed
Preview moves with mouse position if there is screen space
1 parent 39c4725 commit 4118102

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

src/main/kotlin/com/lambda/client/module/modules/render/ContainerPreview.kt

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,23 @@ object ContainerPreview : Module(
6666
if (mc.currentScreen !is GuiContainer) return@safeListener
6767
val gui = it.gui as GuiContainer
6868
if (!Keyboard.isKeyDown(previewLock.key)) {
69-
val slotUnder = gui.slotUnderMouse
70-
if (slotUnder != null && slotUnder.hasStack && !slotUnder.stack.isEmpty && (slotUnder.stack.item is ItemShulkerBox || slotUnder.stack.item.block == Blocks.ENDER_CHEST)) {
71-
if (stackContainer == null || stackContainer?.parentContainer != slotUnder.stack) {
69+
gui.slotUnderMouse?.let {slotUnder ->
70+
if (slotUnder.hasStack && !slotUnder.stack.isEmpty && (slotUnder.stack.item is ItemShulkerBox || slotUnder.stack.item.block == Blocks.ENDER_CHEST)) {
71+
if (stackContainer == null || stackContainer?.parentContainer != slotUnder.stack) {
72+
stackContainer = createPreviewGui(slotUnder.stack, getContainerContents(slotUnder.stack))
73+
}
74+
} else stackContainer = null
75+
stackContainer?.let { sc ->
7276
val res = ScaledResolution(mc)
73-
val resWidth = res.scaledWidth
7477
// ensure the preview gui is on screen
75-
val dX = gui.guiLeft + slotUnder.xPos + 16
76-
val previewDrawX = if (dX + previewWidth > resWidth) res.scaledWidth - previewWidth else dX
77-
val dY = gui.guiTop + slotUnder.yPos + 8
78+
val dX = it.mouseX + 8
79+
val previewDrawX = if (dX + previewWidth > res.scaledWidth) res.scaledWidth - previewWidth else dX
80+
val dY = it.mouseY
7881
val previewDrawY = if (dY + previewHeight > res.scaledHeight) res.scaledHeight - previewHeight else dY
79-
stackContainer = createPreviewGui(slotUnder.stack, getContainerContents(slotUnder.stack), previewDrawX, previewDrawY)
82+
sc.posX = previewDrawX
83+
sc.posY = previewDrawY
8084
}
81-
} else stackContainer = null
85+
}
8286
}
8387
stackContainer?.drawScreen(it.mouseX, it.mouseY, it.renderPartialTicks)
8488
}
@@ -139,15 +143,11 @@ object ContainerPreview : Module(
139143

140144
private fun createPreviewGui(
141145
parentContainer: ItemStack,
142-
containerContents: MutableList<ItemStack>,
143-
posX: Int,
144-
posY: Int
146+
containerContents: MutableList<ItemStack>
145147
): GuiPreview {
146148
return GuiPreview(
147149
PreviewContainer(PreviewInventory(containerContents), 27),
148-
parentContainer,
149-
posX,
150-
posY
150+
parentContainer
151151
)
152152
}
153153

@@ -184,7 +184,9 @@ object ContainerPreview : Module(
184184
return CachedContainerManager.getEnderChestInventory().toMutableList()
185185
}
186186

187-
class GuiPreview(inventorySlotsIn: Container, val parentContainer: ItemStack, val posX: Int, val posY: Int) : GuiContainer(inventorySlotsIn) {
187+
class GuiPreview(inventorySlotsIn: Container, val parentContainer: ItemStack) : GuiContainer(inventorySlotsIn) {
188+
var posX: Int = 0
189+
var posY: Int = 0
188190
init {
189191
this.mc = Minecraft.getMinecraft()
190192
this.fontRenderer = this.mc.fontRenderer

0 commit comments

Comments
 (0)