ItemZoom: Add side priority option (#1070)

This commit is contained in:
slprime authored and GitHub committed 2026-10-10 14:36:28 +03:00
1 parent e6174c446a
commit 1673079cbb
4 files changed
+43 -2

No files matched your search

+24 -2
View File
@@ -111,8 +111,14 @@ public class ItemZoom extends Widget implements IContainerInputHandler {
this.xPosition = (availableAreaWidth - this.scale * SLOT_SIZE) / 2;
this.availableAreaWidth = (int) (availableAreaWidth / screenScale);
if (availableAreaWidth / screenScale >= mouse.x) {
this.xPosition += gui.width * screenScale - availableAreaWidth;
final float rightSideShift = gui.width * screenScale - availableAreaWidth;
final boolean leftSideFree = availableAreaWidth / screenScale < mouse.x;
final boolean rightSideFree = mouse.x < gui.width - availableAreaWidth / screenScale;
final boolean showOnRight = leftSideFree && rightSideFree ? !preferLeftSide() : !leftSideFree;
if (showOnRight) {
this.xPosition += rightSideShift;
}
try {
@@ -128,6 +134,22 @@ public class ItemZoom extends Widget implements IContainerInputHandler {
}
}
private boolean preferLeftSide() {
switch (NEIClientConfig.getIntSetting("inventory.itemzoom.preferredSide")) {
case 1:
return true;
case 2:
return false;
}
final int leftCount = NEIClientConfig.isBookmarkPanelHidden()
|| ItemPanels.bookmarkPanel.getGrid().getPerPage() == 0 ? 0 : ItemPanels.bookmarkPanel.getGrid().size();
final int rightCount = ItemPanels.itemPanel.getGrid().getPerPage() == 0 ? 0
: ItemPanels.itemPanel.getGrid().size();
return leftCount <= rightCount;
}
private float getPointSize(GuiContainer gui) {
final float screenScale = 1.0f / getScreenScale();
final float availableAreaWidth = (gui.width - (gui.xSize + gui.width) / 2) * screenScale;
@@ -382,6 +382,11 @@ public class NEIClientConfig {
tag.getTag("inventory.itemzoom.onlySolid").getBooleanValue(false);
API.addOption(new OptionToggleButton("inventory.itemzoom.onlySolid", true));
tag.getTag("inventory.itemzoom.preferredSide")
.setComment("Which side to prefer showing the zoomed item on, when both sides are free.")
.getIntValue(0);
API.addOption(new OptionCycled("inventory.itemzoom.preferredSide", 3, true));
tag.getTag("inventory.itemzoom.helpText")
.setComment("Display name \"Item Zoom\" and the hotkey to toggle this mod below the zoomed item.")
.getBooleanValue(true);
@@ -520,6 +520,13 @@ nei.options.inventory.itemzoom.neiOnly.tip=Zoom items only from the JEI ingredie
nei.options.inventory.itemzoom.onlySolid=Show Only Solid Items
nei.options.inventory.itemzoom.onlySolid.true=Enabled
nei.options.inventory.itemzoom.onlySolid.false=Disabled
nei.options.inventory.itemzoom.preferredSide=Preferred Side
nei.options.inventory.itemzoom.preferredSide.0=Auto
nei.options.inventory.itemzoom.preferredSide.1=Left
nei.options.inventory.itemzoom.preferredSide.2=Right
nei.options.inventory.itemzoom.preferredSide.0.tip=Prefer whichever side currently has fewer items in its panel.
nei.options.inventory.itemzoom.preferredSide.1.tip=Always prefer the left side, unless the cursor is there.
nei.options.inventory.itemzoom.preferredSide.2.tip=Always prefer the right side, unless the cursor is there.
nei.options.inventory.itemzoom.helpText=Display Help Text
nei.options.inventory.itemzoom.helpText.true=Enabled
nei.options.inventory.itemzoom.helpText.false=Disabled
@@ -335,6 +335,13 @@ nei.options.inventory.itemzoom.neiOnly.tip=Увеличивать предмет
nei.options.inventory.itemzoom.onlySolid=Показывать только твердые предметы
nei.options.inventory.itemzoom.onlySolid.true=Включено
nei.options.inventory.itemzoom.onlySolid.false=Отключено
nei.options.inventory.itemzoom.preferredSide=Предпочитаемая сторона
nei.options.inventory.itemzoom.preferredSide.0=Авто
nei.options.inventory.itemzoom.preferredSide.1=Слева
nei.options.inventory.itemzoom.preferredSide.2=Справа
nei.options.inventory.itemzoom.preferredSide.0.tip=Выбирать сторону, где сейчас меньше предметов в панели.
nei.options.inventory.itemzoom.preferredSide.1.tip=Всегда предпочитать левую сторону, если там нет курсора.
nei.options.inventory.itemzoom.preferredSide.2.tip=Всегда предпочитать правую сторону, если там нет курсора.
nei.options.inventory.itemzoom.helpText=Показывать текст помощи
nei.options.inventory.itemzoom.helpText.true=Включено
nei.options.inventory.itemzoom.helpText.false=Отключено