左键拖拽(空手 Shift)

基本信息

属性 值
配置字段 MTConfig.LMBTweakWithoutItem
类型 boolean
默认值 true(MTConfig.java 字段初始值)
实现方法 yalter.mousetweaks.handlers.ClickHandler#handleLMBTweak(stackOnMouse == null 分支)
触发按键 鼠标左键 + Shift

功能

鼠标上没有物品时,按住 Shift + 左键划过栏位,就能把经过的每个栏位都做一次 shift-click,从而把物品批量送进另一个背包(通常是自己的背包)。

} else if (MTConfig.LMBTweakWithoutItem && (targetStack != null) && shiftIsDown) {
    context.clickSlot(currentScreen, selectedSlot, 0, true);
}

命中条件(四个同时满足):

条件 说明
stackOnMouse == null 走的是「空手」分支;手上拿东西时由 左键拖拽(手持物品) 处理
MTConfig.LMBTweakWithoutItem == true 配置开关
targetStack != null 鼠标必须悬停在有物品的栏位上,空栏位直接忽略
shiftIsDown 左右任一 Shift 处于按下状态(KEY_LSHIFT 或 KEY_RSHIFT)

命中后执行 context.clickSlot(currentScreen, selectedSlot, 0, true)——鼠标键 0、Shift 置位, 即原版 shift-click 的整堆转移语义。

与手持物品分支的差异对比

属性 LMBTweakWithoutItem(本条目) LMBTweakWithItem
鼠标状态 必须空手 必须手持
Shift 必须按下 按下则整堆移动;不按则两击合并
目标栏位 只能有物品(targetStack != null) 只能有物品(targetStack != null)
物品兼容性判定 无(直接 shift-click,不比较) 必须 areStacksCompatible
堆叠上限检查 无 count(mouse) + count(target) <= maxStackSize(mouse)
合成产物栏位 不排除——空手段无产物栏位判定 排除,第二次点击被跳过
每经过栏位的点击次数 1 次 1~2 次

两个开关互相独立:handleLMBTweak 用 if / else if 分流,配置时可以只留其中之一。

相关条目